.portal-shell{background:var(--paper-soft);min-height:100vh;padding:28px clamp(18px,5vw,80px) 70px}.portal-top{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding-bottom:24px;display:flex}.portal-brand{align-items:center;gap:14px;font-weight:600;display:flex}.portal-brand img{object-fit:contain;width:46px;height:56px}.portal-links{flex-wrap:wrap;gap:20px;font-size:14px;display:flex}.portal-shell h1{letter-spacing:-1.5px;margin:32px 0 12px;font-size:clamp(28px,4vw,48px);line-height:1.2}.portal-shell h2{margin:0 0 18px;font-size:22px;line-height:1.35}.portal-shell h3{margin:0 0 12px;font-size:18px}.portal-shell p{margin:0 0 16px}.portal-muted{color:var(--muted);font-size:14px}.portal-tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;margin:28px 0;display:flex}.portal-shell button{border:1px solid var(--line);background:#fff;border-radius:6px;min-height:44px;padding:10px 16px;font-weight:500}.portal-shell button:hover{border-color:var(--ink)}.portal-shell button:disabled{opacity:.5;cursor:wait}.portal-tabs button{background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0}.portal-tabs button[aria-selected=true]{border-color:var(--gold-ink);color:var(--ink-deep)}.portal-shell .portal-primary{background:var(--gold);border-color:var(--gold);color:var(--ink-deep)}.portal-grid{grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:24px;display:grid}.portal-panel{border:1px solid var(--line);background:#fff;border-radius:10px;min-width:0;margin-bottom:22px;padding:26px}.portal-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.portal-form label{flex-direction:column;gap:6px;min-width:0;font-size:14px;font-weight:500;display:flex}.portal-form input,.portal-form select,.portal-form textarea,.portal-search input{width:100%;color:var(--ink);background:#fff;border:1px solid #a4aaa7;border-radius:5px;min-height:44px;padding:11px 12px}.portal-form .portal-wide{grid-column:1/-1}.portal-form .portal-check{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400;display:flex}.portal-check input{flex-shrink:0;width:18px;min-height:18px;margin-top:4px}.portal-form textarea{resize:vertical;min-height:90px}.portal-row{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.portal-row:last-child{border-bottom:0}.portal-row strong{display:block}.portal-badge{background:var(--paper-soft);border:1px solid var(--line);text-transform:capitalize;border-radius:4px;padding:3px 8px;font-size:12px;display:inline-block}.portal-alert{overflow-wrap:anywhere;background:#fff9df;border:1px solid #bfa632;border-radius:6px;margin:20px 0;padding:16px 20px}.portal-search{gap:10px;max-width:500px;margin-bottom:20px;display:flex}.portal-pager{align-items:center;gap:12px;margin-top:16px;display:flex}.portal-shell code{overflow-wrap:anywhere;font-size:13px}.portal-secret{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--paper-soft);-webkit-user-select:all;user-select:all;margin:10px 0;padding:16px;display:block}.portal-event{border-left:2px solid var(--gold-ink);margin-left:5px;padding:0 0 20px 18px}.portal-event p{margin-bottom:5px}.portal-actions{flex-wrap:wrap;gap:8px;display:flex}.portal-logout{border-bottom:1px solid var(--ink);display:inline-block}:is(.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-offset:3px;outline:3px solid #766700}.portal-catalog{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.portal-catalog .portal-panel{flex-direction:column;display:flex}.portal-catalog a{margin-top:auto;font-weight:600;text-decoration:underline}.portal-shell ul{padding-left:20px}.portal-shell time{color:var(--muted);font-size:12px}@media (max-width:850px){.portal-grid,.portal-catalog,.portal-form{grid-template-columns:1fr}.portal-panel{padding:20px}.portal-tabs button{padding:10px 12px}.portal-form .portal-wide{grid-column:auto}}
