.portal-shell{--portal-bg:#f7f9fc;--portal-card:#ffffff;--portal-text:#172b4d;--portal-muted:#64748b;--portal-border:#e2e8f0;--portal-primary:#2563eb;--portal-primary-hover:#1d4ed8;--portal-primary-soft:#eff6ff;--portal-hover:#f1f5f9;--portal-green:#16a34a;--portal-green-bg:#f0fdf4;--portal-amber:#d97706;--portal-amber-bg:#fffbeb;--portal-red:#dc2626;--portal-red-bg:#fef2f2;--portal-gray-bg:#f1f5f9;--portal-shadow:0 1px 2px rgba(23,43,77,0.06),0 1px 3px rgba(23,43,77,0.04);--portal-shadow-lg:0 12px 30px rgba(23,43,77,0.12);background:var(--portal-bg);color:var(--portal-text);min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.6}.portal-shell a{color:var(--portal-primary)}.portal-shell a:focus-visible,.portal-shell button:focus-visible,.portal-shell input:focus-visible,.portal-shell select:focus-visible,.portal-shell textarea:focus-visible{outline:3px solid var(--portal-amber);outline-offset:2px}.portal-skip{position:absolute;left:-9999px;top:0;background:var(--portal-text);color:#fff;padding:10px 16px;z-index:10}.portal-skip:focus{left:10px;top:10px}.portal-layout{display:flex;min-height:100vh}.portal-sidebar{width:264px;flex-shrink:0;background:var(--portal-card);border-right:1px solid var(--portal-border);padding:20px 16px;position:sticky;top:0;height:100vh;overflow-y:auto}.portal-brand{display:block;font-size:1.15rem;font-weight:800;text-decoration:none;padding:4px 8px 16px}.portal-brand,.portal-brand:hover{color:var(--portal-text)}.portal-nav-group{font-size:.75rem;font-weight:700;letter-spacing:.08em;color:var(--portal-muted);padding:18px 8px 6px;text-transform:uppercase}.portal-nav-link{display:block;padding:8px 10px;border-radius:8px;color:var(--portal-text);text-decoration:none;font-weight:600}.portal-nav-link:hover{background:var(--portal-hover);color:var(--portal-text)}.portal-nav-link[aria-current=page]{background:var(--portal-primary-soft);color:var(--portal-primary)}.portal-nav-soon{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-radius:8px;color:var(--portal-muted);font-weight:600}.portal-nav-note{font-size:.8rem;color:var(--portal-muted);padding:6px 10px 0;line-height:1.5}.portal-nav-logout{width:100%;text-align:left;background:none;border:0;cursor:pointer;font:inherit;padding:8px 10px;border-radius:8px;color:var(--portal-text);font-weight:600}.portal-nav-logout:hover{background:var(--portal-hover)}.portal-main{flex:1;min-width:0;display:flex;flex-direction:column}.portal-topbar{background:var(--portal-card);border-bottom:1px solid var(--portal-border);padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.portal-topbar .crumb,.portal-topbar .who{color:var(--portal-muted);font-size:.9rem}.portal-topbar .who{display:flex;gap:16px;flex-wrap:wrap}.portal-topbar .who strong{color:var(--portal-text)}.portal-content{flex:1;max-width:1100px;width:100%;margin:0 auto;padding:32px 28px}.portal-content h1{font-size:1.8rem;line-height:1.25;margin-bottom:8px}.portal-lead{color:var(--portal-muted);margin-bottom:24px;max-width:720px}.portal-card{background:var(--portal-card);border:1px solid var(--portal-border);border-radius:12px;padding:20px 24px;margin-bottom:24px;box-shadow:var(--portal-shadow)}.portal-card h2{font-size:1.25rem;margin-bottom:8px}.portal-notice{background:var(--portal-green-bg);border:1px solid #bbf7d0;color:#14532d;border-radius:12px}.portal-error,.portal-notice{padding:14px 20px;margin-bottom:24px}.portal-error{background:var(--portal-red-bg);border:1px solid #fecaca;color:#7f1d1d;border-radius:12px}.portal-error strong,.portal-notice strong{display:block;margin-bottom:4px}.portal-btn{display:inline-block;background:var(--portal-primary);color:#fff;padding:12px 22px;border-radius:8px;text-decoration:none;font-weight:700;border:0;cursor:pointer;font-size:1rem;font-family:inherit}.portal-btn:hover{background:var(--portal-primary-hover);color:#fff}.portal-btn-light{background:var(--portal-card);color:var(--portal-primary);border:2px solid var(--portal-primary)}.portal-btn-light:hover{background:var(--portal-primary-soft);color:var(--portal-primary)}.portal-btn-danger{background:var(--portal-red)}.portal-btn-danger:hover{background:#b91c1c}.portal-btn-sm{padding:8px 14px;font-size:.9rem}.portal-form label{display:block;font-weight:600;margin:16px 0 6px}.portal-form input[type=email],.portal-form input[type=number],.portal-form input[type=password],.portal-form input[type=text],.portal-form input[type=url],.portal-form select,.portal-form textarea{width:100%;max-width:560px;padding:10px 12px;border:1px solid var(--portal-border);border-radius:8px;font:inherit;background:var(--portal-card);color:var(--portal-text)}.portal-form textarea{min-height:110px}.portal-form .hint{color:var(--portal-muted);font-size:.9rem;margin-top:4px}.portal-form .field-error{color:var(--portal-red);font-size:.9rem}.portal-inline{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.portal-table{width:100%;border-collapse:collapse;font-size:.95rem}.portal-table td,.portal-table th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--portal-border);vertical-align:top}.portal-table th{color:var(--portal-muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}.portal-table tr:last-child td{border-bottom:0}.portal-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.85rem;font-weight:700;background:var(--portal-gray-bg);color:var(--portal-text)}.portal-badge-green{background:var(--portal-green-bg);color:var(--portal-green)}.portal-badge-amber{background:var(--portal-amber-bg);color:var(--portal-amber)}.portal-badge-red{background:var(--portal-red-bg);color:var(--portal-red)}.portal-badge-blue{background:var(--portal-primary-soft);color:var(--portal-primary)}.portal-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:24px}.portal-stat{border:1px solid var(--portal-border);border-radius:12px;padding:20px;background:var(--portal-card)}.portal-stat .num{font-size:2rem;font-weight:800;line-height:1.2}.portal-stat .label{color:var(--portal-muted);font-size:.95rem}.portal-empty{color:var(--portal-muted);margin-top:16px}.portal-definition{display:grid;grid-template-columns:180px 1fr;gap:8px 16px;margin:0}.portal-definition dt{font-weight:700}.portal-definition dd{margin:0}.portal-steps{display:flex;gap:8px;list-style:none;padding:0;margin:0 0 24px;flex-wrap:wrap}.portal-steps li{padding:8px 14px;border:1px solid var(--portal-border);border-radius:999px;font-weight:600;color:var(--portal-muted);background:var(--portal-card)}.portal-steps li[aria-current=step]{background:var(--portal-primary);border-color:var(--portal-primary);color:#fff}.portal-progress{list-style:none;padding:0;margin:0}.portal-progress li{padding:10px 0;border-bottom:1px solid var(--portal-border);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.portal-progress li:last-child{border-bottom:0}.portal-footer{border-top:1px solid var(--portal-border);background:var(--portal-card)}.portal-footer-inner{max-width:1100px;margin:0 auto;padding:24px 28px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:var(--portal-muted)}.portal-footer-inner nav ul{list-style:none;display:flex;gap:16px;flex-wrap:wrap;margin:0;padding:0}.portal-footer-inner nav a{color:var(--portal-muted);text-decoration:none}.portal-support-box{border:1px solid var(--portal-border);border-radius:12px;padding:20px 24px;margin-bottom:24px;background:var(--portal-card)}.portal-support-box p{color:var(--portal-muted);margin:0 0 8px}.portal-quick{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:24px}.portal-quick-card{border:1px solid var(--portal-border);border-radius:12px;padding:20px;background:var(--portal-card)}.portal-quick-card h3{margin-bottom:4px}.portal-quick-card p{color:var(--portal-muted);margin-bottom:12px}.portal-viewer{position:relative;overflow:hidden;border:1px solid var(--portal-border);border-radius:12px;background:var(--portal-gray-bg);cursor:crosshair;touch-action:none}.portal-viewer img{display:block;max-width:none;transform-origin:0 0;user-select:none}.portal-pin{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:var(--portal-primary);color:#fff;font-weight:800;font-size:.85rem;justify-content:center;border:2px solid #fff;box-shadow:var(--portal-shadow-lg);pointer-events:none}.portal-pagination,.portal-pin{display:flex;align-items:center}.portal-pagination{gap:16px;justify-content:space-between;flex-wrap:wrap;margin-top:20px;color:var(--portal-muted)}@media (max-width:800px){.portal-layout{flex-direction:column}.portal-sidebar{width:100%;height:auto;position:static;border-right:0;border-bottom:1px solid var(--portal-border)}.portal-definition,.portal-quick,.portal-stats{grid-template-columns:1fr}}