html,body,#root{height:100%;margin:0;padding:0}#root{flex-direction:column;display:flex}body{-webkit-font-smoothing:antialiased;color:#101418;background:#fafbfc;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}:root{--portal-ink:#101418;--portal-graphite:#4b545c;--portal-muted:#67707a;--portal-line:#dde1e6;--portal-surface:#fff;--portal-page:#fafbfc;--portal-accent:#2563eb;--portal-accent-dark:#1d4ed8;--portal-danger:#dc2626}.portal-login{justify-content:center;align-items:center;height:100%;display:flex}.portal-login-card{background:var(--portal-surface);border:1px solid var(--portal-line);border-radius:12px;flex-direction:column;gap:12px;width:360px;padding:32px;display:flex}.portal-login-card h1{margin:0 0 8px;font-size:22px}.portal-shell{height:100%;display:flex}.portal-sidebar{background:var(--portal-ink);color:#fff;flex-direction:column;gap:4px;width:220px;padding:24px 12px;display:flex}.portal-sidebar-brand{padding:0 12px 16px;font-size:18px;font-weight:700}.portal-nav-button{color:#ffffffbf;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;padding:10px 12px;font-size:14px}.portal-nav-button:hover{background:#ffffff14}.portal-nav-button.active{background:var(--portal-accent);color:#fff}.portal-sidebar-footer{color:#ffffff8c;margin-top:auto;padding:12px;font-size:12px}.portal-main{flex:1;padding:32px;overflow:auto}.portal-main h1{margin:0 0 24px;font-size:24px}.portal-card{background:var(--portal-surface);border:1px solid var(--portal-line);border-radius:12px;margin-bottom:16px;padding:20px}.portal-stat-row{gap:16px;display:flex}.portal-stat{background:var(--portal-surface);border:1px solid var(--portal-line);border-radius:12px;flex:1;padding:20px}.portal-stat .value{font-size:28px;font-weight:700}.portal-stat .label{color:var(--portal-muted);font-size:13px}.portal-table{border-collapse:collapse;width:100%}.portal-table th,.portal-table td{border-bottom:1px solid var(--portal-line);text-align:left;padding:10px 12px;font-size:14px}.portal-table th{color:var(--portal-muted);font-weight:600}.portal-input{border:1px solid var(--portal-line);border-radius:8px;width:100%;padding:10px 12px;font-size:14px}.portal-button{background:var(--portal-accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:600}.portal-button:hover{background:var(--portal-accent-dark)}.portal-button.secondary{border:1px solid var(--portal-line);color:var(--portal-ink);background:0 0}.portal-error{color:var(--portal-danger);font-size:14px}.portal-muted{color:var(--portal-muted);font-size:13px}.portal-button:disabled{cursor:default;opacity:.55}.portal-button.secondary:hover{background:var(--portal-page)}.portal-button.danger{background:var(--portal-danger);color:#fff}.portal-button.secondary.danger{border-color:var(--portal-danger);color:var(--portal-danger);background:0 0}.portal-link-button{color:var(--portal-accent);cursor:pointer;background:0 0;border:none;padding:4px;font-size:13px}.portal-notice{background:var(--portal-success-surface);color:var(--portal-success);border-radius:8px;padding:10px 14px;font-size:14px}:root{--portal-success:#16a34a;--portal-success-surface:#e8f6ec;--portal-accent-surface:#eff6ff}.portal-management-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.portal-management-toolbar h2{margin:0;font-size:18px}.portal-management-toolbar p{margin:2px 0 0}.portal-row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.portal-search .portal-input{min-width:240px}.portal-management-list{flex-direction:column;gap:8px;display:flex}.portal-management-row{background:var(--portal-surface);border:1px solid var(--portal-line);border-radius:12px;align-items:center;gap:16px;padding:14px 16px;display:flex}.portal-management-media{background:var(--portal-accent-surface);color:var(--portal-accent-dark);border-radius:50%;flex:none;justify-content:center;align-items:center;width:44px;height:44px;font-size:14px;font-weight:700;display:flex;overflow:hidden}.portal-management-media img{object-fit:cover;width:100%;height:100%}.portal-management-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.portal-management-body strong,.portal-management-body p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.portal-management-body p{color:var(--portal-graphite);margin:0;font-size:14px}.portal-badge-row{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.portal-badge{background:var(--portal-page);border:1px solid var(--portal-line);color:var(--portal-graphite);border-radius:999px;padding:2px 10px;font-size:12px}.portal-empty{text-align:center}.portal-empty h2{margin:0 0 6px;font-size:18px}.portal-dialog-overlay{z-index:100;background:#10141873;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.portal-dialog{background:var(--portal-surface);border-radius:14px;width:100%;max-width:460px;max-height:100%;padding:24px;overflow:auto;box-shadow:0 20px 50px #10141840}.portal-dialog h2{margin:0 0 8px;font-size:18px}.portal-dialog-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.portal-form{flex-direction:column;gap:14px;display:flex}.portal-form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.portal-field{flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.portal-field-hint{color:var(--portal-muted);font-weight:400}.portal-checkbox{align-items:center;gap:8px;font-size:14px;display:flex}.rte-frame{border:1px solid var(--portal-line);border-radius:10px;overflow:hidden}.rte-toolbar{background:var(--portal-page);border-bottom:1px solid var(--portal-line);flex-wrap:wrap;align-items:center;gap:4px;padding:6px;display:flex}.rte-button{color:var(--portal-ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;min-width:32px;padding:5px 8px;font-size:13px}.rte-button:hover:not(:disabled){background:var(--portal-surface);border-color:var(--portal-line)}.rte-button:disabled{cursor:default;opacity:.4}.rte-button-active{background:var(--portal-accent-surface);border-color:var(--portal-accent);color:var(--portal-accent-dark)}.rte-divider{background:var(--portal-line);width:1px;height:20px;margin:0 4px}.rte-content .tiptap{outline:none;min-height:260px;padding:14px 18px;font-size:15px;line-height:1.6}.rte-content .tiptap img{border-radius:6px;max-width:100%;height:auto}.rte-content .tiptap img.ProseMirror-selectednode{outline:3px solid var(--portal-accent)}.rte-content .tiptap blockquote{border-left:3px solid var(--portal-line);color:var(--portal-graphite);margin-left:0;padding-left:14px}.rte-content .tiptap a{color:var(--portal-accent)}
