.portal{--portal-ink:#11232d;--portal-ink-soft:#3d4f5a;--portal-muted:#6b7c86;--portal-line:#e2e8ec;--portal-surface:#ffffff;--portal-canvas:#f5f8fa;--portal-accent:#45c2ec;--portal-accent-soft:#e8f7fd;--portal-danger:#c0392b;--portal-danger-soft:#fdecea;--portal-success:#1e7f4f;--portal-success-soft:#e6f5ed;--portal-warning:#9a6510;--portal-warning-soft:#fdf3e2;min-height:100vh;background:var(--portal-canvas);color:var(--portal-ink)}.portal-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.portal-sidebar{background:var(--portal-ink);color:#dbe6ec;padding:1.75rem 1rem;display:flex;flex-direction:column;gap:1.75rem;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.portal-brand{font-weight:700;font-size:1.05rem;letter-spacing:.02em;color:#fff;padding:0 .5rem;line-height:1.3}.portal-brand span{display:block;font-size:.72rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--portal-accent);margin-top:.25rem}.portal-nav{display:flex;flex-direction:column;gap:.15rem}.portal-nav-heading{font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#7b909d;padding:1rem .75rem .4rem}.portal-nav a{display:flex;align-items:center;gap:.6rem;padding:.6rem .75rem;border-radius:8px;font-size:.9rem;font-weight:500;color:#c3d2db;text-decoration:none;transition:background .15s ease,color .15s ease}.portal-nav a:hover{background:rgba(255,255,255,.07);color:#fff}.portal-nav a[aria-current=page]{background:var(--portal-accent);color:#062330;font-weight:600}.portal-main{display:flex;flex-direction:column;min-width:0}.portal-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 2rem;background:var(--portal-surface);border-bottom:1px solid var(--portal-line)}.portal-content{padding:2rem;max-width:1180px;width:100%}.portal-page-title{font-size:1.6rem;font-weight:700;letter-spacing:-.01em;margin-bottom:.35rem}.portal-page-lead{color:var(--portal-muted);font-size:.95rem;margin-bottom:1.75rem;max-width:62ch}.portal-card{background:var(--portal-surface);border:1px solid var(--portal-line);border-radius:12px;padding:1.5rem}.portal-card+.portal-card{margin-top:1.25rem}.portal-card-title{font-size:1.05rem;font-weight:600;margin-bottom:1rem}.portal-empty{border:1px dashed var(--portal-line);border-radius:12px;padding:2.5rem 1.5rem;text-align:center;color:var(--portal-muted);font-size:.92rem;background:var(--portal-surface)}.portal-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1.1rem}.portal-field .portal-label,.portal-field label{font-size:.82rem;font-weight:600;color:var(--portal-ink-soft)}.portal-field input,.portal-field select,.portal-field textarea{width:100%;padding:.6rem .75rem;border:1px solid var(--portal-line);border-radius:8px;font:inherit;font-size:.92rem;color:var(--portal-ink);background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.portal-field input:focus,.portal-field select:focus,.portal-field textarea:focus{outline:none;border-color:var(--portal-accent);box-shadow:0 0 0 3px rgba(69,194,236,.18)}.portal-field textarea{min-height:96px;resize:vertical}.portal-field .portal-hint{font-size:.78rem;color:var(--portal-muted)}.portal-field.has-error input,.portal-field.has-error select,.portal-field.has-error textarea{border-color:var(--portal-danger)}.portal-error-text{font-size:.78rem;color:var(--portal-danger);font-weight:500}.portal-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:0 1rem;gap:0 1rem}.portal-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.6rem 1.1rem;border-radius:8px;border:1px solid transparent;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s ease,border-color .15s ease,opacity .15s ease}.portal-btn:disabled{opacity:.55;cursor:not-allowed}.portal-btn-primary{background:var(--portal-accent);color:#06232f}.portal-btn-primary:hover:not(:disabled){background:var(--primary-color,#5ce1e6)}.portal-btn-secondary{background:#fff;border-color:var(--portal-line);color:var(--portal-ink)}.portal-btn-secondary:hover:not(:disabled){border-color:var(--portal-ink-soft)}.portal-btn-danger{background:var(--portal-danger-soft);color:var(--portal-danger);border-color:#f3c8c3}.portal-btn-ghost{background:transparent;color:var(--portal-ink-soft);padding:.4rem .6rem}.portal-btn-ghost:hover:not(:disabled){background:rgba(17,35,45,.06)}.portal-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.01em;white-space:nowrap}.portal-pill-neutral{background:#eef2f5;color:var(--portal-ink-soft)}.portal-pill-pending{background:var(--portal-warning-soft);color:var(--portal-warning)}.portal-pill-success{background:var(--portal-success-soft);color:var(--portal-success)}.portal-pill-danger{background:var(--portal-danger-soft);color:var(--portal-danger)}.portal-pill-info{background:var(--portal-accent-soft);color:#0d6f93}.portal-banner{border-radius:10px;padding:.85rem 1rem;font-size:.88rem;line-height:1.5;margin-bottom:1.25rem;border:1px solid transparent}.portal-banner-error{background:var(--portal-danger-soft);color:var(--portal-danger);border-color:#f3c8c3}.portal-banner-success{background:var(--portal-success-soft);color:var(--portal-success);border-color:#bfe3d0}.portal-banner-info{background:var(--portal-accent-soft);color:#0d6f93;border-color:#bfe6f5}.portal-banner-warning{background:var(--portal-warning-soft);color:var(--portal-warning);border-color:#f0dcb8}.portal-table-wrap{overflow-x:auto;border:1px solid var(--portal-line);border-radius:12px;background:var(--portal-surface)}.portal-table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:640px}.portal-table th{text-align:left;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--portal-muted);padding:.75rem 1rem;background:#fafcfd;white-space:nowrap}.portal-table td,.portal-table th{border-bottom:1px solid var(--portal-line)}.portal-table td{padding:.8rem 1rem;vertical-align:middle}.portal-table tbody tr:last-child td{border-bottom:none}.portal-table tbody tr:hover{background:#fafcfd}.portal-auth{min-height:100vh;display:grid;place-items:center;padding:2rem 1.25rem;background:var(--portal-ink)}.portal-auth-card{width:100%;max-width:400px;background:#fff;border-radius:14px;padding:2rem;box-shadow:0 24px 60px rgba(0,0,0,.28)}.portal-auth-brand{text-align:center;margin-bottom:1.5rem}.portal-auth-brand strong{display:block;font-size:1.15rem;font-weight:700}.portal-auth-brand span{font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--portal-muted)}.portal-auth-links{margin-top:1.25rem;text-align:center;font-size:.85rem}.portal-auth-links a{color:#0d6f93;font-weight:500}.portal-checklist{display:flex;flex-direction:column;gap:.6rem}.portal-checklist-item{display:flex;align-items:flex-start;gap:.85rem;padding:.9rem 1rem;border:1px solid var(--portal-line);border-radius:10px;background:#fff}.portal-checklist-item.is-done{background:var(--portal-success-soft);border-color:#bfe3d0}.portal-check-mark{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.75rem;font-weight:700;background:#e6ebee;color:var(--portal-muted);margin-top:.1rem}.portal-checklist-item.is-done .portal-check-mark{background:var(--portal-success);color:#fff}.portal-checklist-body strong{display:block;font-size:.92rem;font-weight:600}.portal-checklist-body p{font-size:.83rem;color:var(--portal-muted);margin-top:.15rem}@media (max-width:900px){.portal-shell{grid-template-columns:1fr}.portal-sidebar{position:static;height:auto;flex-direction:column;padding:1rem}.portal-nav{flex-direction:row;flex-wrap:wrap;gap:.35rem}.portal-nav-heading{width:100%;padding:.5rem .25rem .2rem}.portal-content,.portal-topbar{padding:1.25rem}.portal-grid-2{grid-template-columns:1fr}}