@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.03ez25a9g3i0n.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.1ee5w62fj497l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.1way2z9fj6cig.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.0szrwpqb9mkwe.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.45535valc9rzk.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_2fe1ab3d-module__-T-KAq__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_2fe1ab3d-module__-T-KAq__variable{--font-inter:"Inter", "Inter Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.block{display:block}.hidden{display:none}.table{display:table}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.\[archivo\:línea\]{archivo:línea}}:root{--sage:#e7ede8;--sage-2:#dbe4dc;--surface:#fff;--surface-hover:#f4f8f5;--text-primary:#16241c;--text-secondary:#52645a;--text-muted:#5f6e65;--border:#d7ddd8;--control-border:#7d8b83;--accent:#1f3d2e;--accent-hover:#163023;--accent-soft:#e3ece6;--accent-text:#fff;--focus:#137f78;--danger:#9c2c2c;--danger-hover:#7f2020;--danger-soft:#f8dede;--warning:#8a5a12;--status-draft-bg:#faedd2;--status-draft-fg:#8a5a12;--status-review-bg:#dbe8fb;--status-review-fg:#1a4a8f;--status-issued-bg:#dcf0e0;--status-issued-fg:#1a6b34;--status-asbuilt-bg:#e4e9ea;--status-asbuilt-fg:#40575c;--code-active-bg:#dcf0e0;--code-active-fg:#1a6b34;--code-revoked-bg:#f8dede;--code-revoked-fg:#9c2c2c;--code-expired-bg:#e4e9ea;--code-expired-fg:#57666a;--superseded-bg:#eef1ef;--superseded-fg:#57666a;--warning-soft:#faedd2;--warning-text:#5c3b0c;--warning-line:#c58a2c;--new:#137f78;--new-soft:#e2f1ef;--new-text:#0f4f4a;--radius-control:6px;--radius-card:10px;--shadow-card:0 1px 2px #16241c0d, 0 8px 24px #16241c0d;--shadow-popover:0 12px 32px #16241c40;--font-sans:var(--font-inter), Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-xs:12px;--text-sm:14px;--text-md:16px;--text-lg:20px;--text-xl:28px;--text-2xl:36px;--touch:44px;--portal-ink:var(--text-primary);--portal-muted:var(--text-secondary);--portal-line:var(--border);--portal-surface:var(--surface);--portal-canvas:var(--sage);--portal-action:var(--accent);--portal-accent:var(--accent);--portal-focus:var(--focus);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{color:#17201d;font-family:var(--font-sans);background:#f4f5f4;margin:0}button,input{font:inherit}button{cursor:pointer}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{background:#fff;border-bottom:1px solid #d9dedb;justify-content:space-between;align-items:center;padding:18px clamp(24px,5vw,80px);display:flex}.brand{letter-spacing:.08em;color:inherit;font-size:15px;font-weight:800;text-decoration:none}.tag{color:#64736b;font-size:13px}.main{width:min(100% - 40px,920px);margin:72px auto}.eyebrow{color:var(--accent);text-transform:uppercase;font-size:12px;font-weight:700}h1{margin:14px 0 18px;font-size:clamp(32px,4vw,48px);line-height:1.12}p{color:#5e6c65}.actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.button{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:var(--radius-control);justify-content:center;align-items:center;min-height:46px;padding:0 20px;font-weight:600;text-decoration:none;display:inline-flex}.button.secondary{color:var(--accent);background:#fff}.form{gap:17px;max-width:400px;margin-top:28px;display:grid}.field{gap:7px;font-size:13px;font-weight:700;display:grid}.field input{border:1px solid var(--control-border);border-radius:var(--radius-control);color:#17201d;background:#fff;height:46px;padding:0 12px}.error{color:var(--danger);min-height:20px;font-size:13px}.portal{width:min(100% - 40px,1320px);margin:44px auto}.portal h1{font-size:32px}.project-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px;margin-top:28px;display:grid}.project-item{border-radius:var(--radius-control);color:inherit;background:#fff;border:1px solid #d9dedb;padding:20px;text-decoration:none;display:block}.project-item:hover{border-color:var(--accent)}.project-item h2,.project-item h3{margin:0;font-size:18px}.project-item p{margin:10px 0 24px}.project-item span,.results-count{color:#55655e;font-size:13px}.segment-tabs{border-bottom:1px solid #ccd5cf;gap:24px;margin:30px 0 18px;display:flex;overflow-x:auto}.segment-tabs a{color:#55655e;border-bottom:2px solid #0000;flex:none;padding:12px 2px;text-decoration:none}.segment-tabs a.active{border-color:var(--accent);color:#17201d;font-weight:700}.segment-tabs span{margin-left:5px;font-size:12px}.filters{flex-wrap:wrap;align-items:end;gap:12px;margin:18px 0 26px;display:flex}.filters label{gap:5px;font-size:12px;font-weight:600;display:grid}.filters input,.filters select{border:1px solid var(--control-border);border-radius:var(--radius-control);background:#fff;min-width:110px;max-width:230px;height:36px;padding:0 9px}.filters button,.filters a{min-height:36px;padding:8px 11px;font-size:13px}.filters button{background:var(--accent);color:#fff;border-radius:var(--radius-control);border:0}.table-scroll{background:#fff;border:1px solid #d9dedb;margin-top:10px;overflow-x:auto}.document-table{border-collapse:collapse;width:100%;min-width:850px;font-size:13px}.document-table th,.document-table td{text-align:left;border-bottom:1px solid #e8ece9;padding:13px}.document-table th{color:#56665e;text-transform:uppercase;background:#f7f9f7;font-size:12px}.document-table button{border:1px solid var(--control-border);border-radius:var(--radius-control);background:#fff;padding:6px 10px}.empty-results{color:#56665e;padding:35px 0}.pagination{justify-content:center;align-items:center;gap:18px;padding:20px;font-size:13px;display:flex}.viewer-backdrop{z-index:100;background:#101c18c9;place-items:center;padding:12px;display:grid;position:fixed;inset:0}.viewer{background:#e3e8e4;flex-direction:column;width:min(100%,1200px);height:min(94vh,1000px);display:flex;overflow:hidden}.viewer:fullscreen{width:100%;height:100%}.viewer-toolbar{background:#fff;justify-content:space-between;align-items:center;gap:10px;min-height:54px;padding:8px 12px;font-size:13px;display:flex}.viewer-controls{align-items:center;gap:4px;display:flex;overflow-x:auto}.viewer-controls button{border-radius:var(--radius-control);background:#f0f3f1;border:1px solid #0000;flex:none;justify-content:center;align-items:center;min-width:34px;height:34px;display:inline-flex}.viewer-controls button:disabled{opacity:.35;cursor:default}.viewer-controls span{white-space:nowrap;padding:0 5px}.viewer-stage{text-align:center;flex:1;min-height:0;padding:16px;overflow:auto}.pdf-page{background:#fff;max-width:none;display:inline-block;position:relative;box-shadow:0 3px 20px #17201d33}@media (max-width:640px){.viewer-toolbar{flex-direction:column;align-items:start}.viewer-controls{width:100%}.portal{margin:30px auto}}.admin-nav{gap:20px;display:flex}.admin-nav a{color:var(--accent);text-decoration:none}.admin-upload{gap:18px;display:grid}.upload-drop{background:#fff;border:1px dashed #8ca698;padding:28px}.upload-drop input[type=file]{display:none}.admin-upload .field select{border:1px solid var(--control-border);background:#fff;max-width:330px;min-height:38px}.admin-upload-table{min-width:1500px}.admin-upload-table input,.admin-upload-table select{border:1px solid var(--control-border);background:#fff;max-width:190px;padding:7px}.admin-section{border-top:1px solid #d9dedb;padding:28px 0}.admin-section h2{margin:0 0 20px;font-size:19px}.admin-record{border-top:1px solid #e0e5e1;gap:14px;padding:20px 0;display:grid}.admin-record:first-of-type{border-top:0}.admin-record-heading,.admin-page-title{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.admin-record-heading a{color:var(--accent)}.admin-form{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.admin-form .field{flex:1;min-width:min(100%,190px)}.admin-form .field input,.admin-form .field select,.admin-form .field textarea{box-sizing:border-box;border:1px solid var(--control-border);border-radius:var(--radius-control);color:#17201d;background:#fff;width:100%;min-height:42px;padding:8px 10px}.admin-form .field textarea{resize:vertical;min-height:76px}.admin-form .check-field{align-items:center;gap:8px;min-height:42px;font-size:13px;display:inline-flex}.admin-form .button{min-height:42px}.admin-form .error{width:100%}.cover-field{flex:1.4;align-self:stretch;gap:7px;min-width:min(100%,320px);display:grid}.cover-label{font-size:13px;font-weight:700}.cover-drop{box-sizing:border-box;color:#456157;background:#fff;border:1px dashed #8ca698;grid-template-columns:68px minmax(100px,1fr) auto;align-items:center;gap:12px;min-height:108px;padding:10px;display:grid}.cover-drop.dragging{border-color:var(--accent);background:#edf6f2}.cover-drop>svg{justify-self:center}.cover-drop div:not(.cover-preview){gap:3px;min-width:0;display:grid}.cover-drop strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.cover-drop span{color:#687870;font-size:12px}.cover-preview{aspect-ratio:1;background-position:50%;background-size:cover;border:1px solid #d0d9d4;width:68px}.cover-browse{gap:7px;padding:0 12px;min-height:38px!important}.cover-remove{color:var(--danger);background:0 0;border:0;justify-self:start;align-items:center;gap:5px;padding:0;font-size:12px;display:inline-flex}.cover-help{color:#3d6556;font-size:12px}.admin-record>.admin-form:last-child{justify-self:start}.admin-record>.admin-form:last-child .button{color:var(--danger);background:#fff;border-color:#c8a6a0}.admin-record .muted{color:#64736b;font-size:13px}.assignment-list{gap:5px;margin:0;padding:0;list-style:none;display:grid}.assignment-list li{border-bottom:1px solid #e8ece9;justify-content:space-between;align-items:center;gap:12px;padding:6px 0;font-size:13px;display:flex}.assignment-list .button{min-height:32px;color:var(--danger);background:#fff;border-color:#c8a6a0;padding:0 10px;font-size:12px}.admin-grants{border-top:1px solid #e0e5e1;gap:12px;width:100%;padding-top:18px;display:grid}.grant-row{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.admin-quick-links{flex-wrap:wrap;gap:18px;padding:0 0 30px;display:flex}.admin-quick-links a{color:var(--accent)}.one-time-secret{background:#fffaf0;border:1px solid #bb9d56;gap:8px;width:100%;padding:16px;display:grid}.one-time-secret p{margin:0}.one-time-secret code{overflow-wrap:anywhere}.one-time-secret .button{justify-self:start}.secret-dialog{border:1px solid var(--control-border);width:min(100% - 32px,430px);padding:26px}.secret-dialog::backdrop{background:#17201dcc}.secret-code{margin:24px 0;font-size:24px;font-weight:700;display:block}.admin-nav{flex-wrap:wrap;justify-content:flex-end}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.document-admin-actions,.document-controls{align-items:center;gap:6px;display:flex}.document-admin-actions .admin-form{flex-wrap:nowrap}.document-admin-actions .admin-form .button{min-height:34px;padding:0 10px;font-size:12px}.icon-button{border:1px solid var(--control-border);border-radius:var(--radius-control);color:#254b3d;background:#fff;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.icon-button:hover{background:#eef5f1;border-color:#547d6d}.icon-button.active{color:#9a6508;background:#fff7df;border-color:#bd9145}.document-dialog{border:1px solid var(--control-border);border-radius:var(--radius-card);color:#17201d;width:min(100% - 32px,680px);padding:26px}.document-dialog::backdrop{background:#0f1c17b8}.document-dialog h2{margin:0;font-size:22px}.document-edit-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px;display:grid}.document-edit-form .field input,.document-edit-form .field select,.document-edit-form .field textarea{box-sizing:border-box;border:1px solid var(--control-border);border-radius:var(--radius-control);color:#17201d;background:#fff;width:100%;min-height:42px;padding:8px 10px}.document-edit-form .field textarea{resize:vertical;min-height:92px}.document-edit-form .full{grid-column:1/-1}.document-dialog-actions{justify-content:flex-end;gap:10px;display:flex}@media (max-width:720px){.topbar{flex-direction:column;align-items:start;gap:16px}.admin-nav{justify-content:flex-start}.admin-form .field,.cover-field{min-width:100%}.cover-drop{grid-template-columns:58px 1fr}.cover-drop .cover-browse{grid-column:1/-1}.cover-preview{width:58px}}@media (max-width:640px){.document-edit-form{grid-template-columns:1fr}.document-edit-form .full{grid-column:auto}}::selection{color:#fff;background:var(--portal-action)}:focus-visible{outline:3px solid var(--portal-focus)}@supports (color:color-mix(in lab, red, red)){:focus-visible{outline:3px solid color-mix(in srgb, var(--portal-focus) 55%, transparent)}}:focus-visible{outline-offset:3px}.project-shell{background:var(--portal-canvas)}.project-shell .topbar{box-sizing:border-box;border-color:var(--portal-line);min-height:68px;padding:0 clamp(24px,4.5vw,72px)}.project-shell .brand{color:var(--portal-ink);letter-spacing:.09em;font-size:14px}.topbar-action{min-height:38px;color:var(--portal-ink);background:0 0;border:0;align-items:center;gap:7px;padding:0;font-size:13px;display:inline-flex}.topbar-action:hover{color:var(--portal-action)}.topbar-links{align-items:center;gap:24px;display:flex}.project-admin-toolbar{justify-content:flex-end;gap:10px;padding:18px clamp(28px,6vw,92px) 0;display:flex}.project-admin-toolbar a{border:1px solid var(--control-border);color:var(--accent);background:#fff;align-items:center;gap:8px;padding:9px 12px;font-weight:700;text-decoration:none;display:inline-flex}.project-admin-toolbar a:hover{border-color:var(--accent);background:#f4faf7}.table-actions{align-items:center;gap:16px;display:flex}.projects-index{width:min(100% - 48px,1240px);margin:0 auto;padding:66px 0 96px}.page-label{color:var(--portal-muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700}.projects-index h1{color:var(--portal-ink);letter-spacing:-.035em;margin:8px 0 34px;font-size:clamp(34px,4vw,48px);font-weight:700}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0}.project-item{box-sizing:border-box;border-radius:var(--radius-card);border:1px solid #d1dad6;min-height:186px;padding:24px;transition:border-color .16s,box-shadow .16s,transform .16s;box-shadow:0 2px 4px #15231f0a,0 12px 30px #15231f09}.project-item:hover{border-color:#78a89c;transform:translateY(-2px);box-shadow:0 3px 6px #15231f12,0 16px 36px #15231f12}.project-card-body{flex-direction:column;min-height:136px;display:flex}.project-item h2,.project-item h3{color:var(--portal-ink);letter-spacing:-.015em;font-size:18px;font-weight:650;line-height:1.25}.project-item p{color:#45544e;margin:8px 0 0;font-size:14px}.project-item span{color:var(--portal-muted);margin-top:auto;font-size:12px}.project-item span i{color:#9aa7a1;padding:0 3px;font-style:normal}.project-item.has-cover{text-align:center;padding-top:0}.project-item.has-cover .project-cover{aspect-ratio:1;background-color:#d9e1dd;background-position:50%;background-size:cover;border:5px solid #fff;border-radius:50%;outline:2px solid #69aba5;width:106px;margin:-32px auto 18px;box-shadow:0 6px 18px #15231f29}.project-item.has-cover .project-card-body{min-height:112px}.project-item.has-cover p{margin-top:6px}.project-detail{box-sizing:border-box;width:min(100%,1440px);margin:0 auto;padding:0 clamp(24px,4.5vw,72px) 80px}.project-hero{background-color:#e3ebe7;background-position:100%;background-repeat:no-repeat;background-size:min(58%,760px);min-height:220px;margin:0 calc(-1*clamp(24px,4.5vw,72px));padding:28px clamp(24px,4.5vw,72px) 34px;position:relative;overflow:hidden}.project-hero.has-image:after{content:"";background:linear-gradient(90deg,#e3ebe7 0% 35%,#e3ebe7eb 50%,#e3ebe738 79%,#e3ebe714 100%);position:absolute;inset:0}.back-link,.project-heading{z-index:1;position:relative}.back-link{color:#51615a;align-items:center;gap:6px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--portal-action)}.project-heading{margin-top:42px}.project-heading h1{max-width:620px;color:var(--portal-ink);letter-spacing:-.04em;margin:0 0 12px;font-size:clamp(34px,4.2vw,55px);font-weight:700}.project-heading p{color:#40524b;align-items:center;gap:6px;margin:0;font-size:14px;display:flex}.project-heading p svg{color:var(--portal-accent)}.project-detail .segment-tabs{border-color:var(--portal-line);background:0 0;gap:30px;margin:0}.project-detail .segment-tabs a{color:#3d4e47;white-space:nowrap;padding:19px 1px 15px;font-size:13px}.project-detail .segment-tabs a.active{border-color:var(--portal-accent);color:var(--portal-ink)}.project-detail .segment-tabs span{border-radius:var(--radius-card);color:#52635c;background:#dbe5e0;justify-content:center;min-width:20px;margin-left:5px;padding:2px 5px;font-size:12px;display:inline-flex}.project-detail .filters{grid-template-columns:minmax(180px,1.45fr) minmax(110px,.75fr) minmax(128px,.9fr) minmax(92px,.6fr) repeat(2,minmax(128px,.8fr)) auto auto;gap:10px;margin:24px 0 20px;padding:0;display:grid}.project-detail .filters label{color:#31423b;font-size:12px}.project-detail .filters input,.project-detail .filters select{box-sizing:border-box;border-color:var(--control-border);border-radius:var(--radius-control);width:100%;min-width:0;max-width:none;color:var(--portal-ink)}.project-detail .filters button{border-radius:var(--radius-control);background:var(--portal-action);min-width:102px;font-weight:650}.project-detail .filters button:hover{background:var(--accent-hover)}.clear-filters{color:var(--portal-action);align-items:center;font-weight:650;text-decoration:none;display:inline-flex}.results-count{color:#5b6c64;margin-bottom:10px;font-size:12px}.project-detail .table-scroll{border-radius:var(--radius-card);border-color:#cbd6d1;box-shadow:0 2px 5px #15231f0a}.document-table{font-variant-numeric:tabular-nums;min-width:980px;font-size:12px}.document-table th,.document-table td{padding:13px 12px}.document-table th{color:#46574f;letter-spacing:.05em;background:#f6f8f7;font-size:12px}.document-table tbody tr:hover{background:#f7faf8}.document-title{color:var(--portal-ink);font-weight:650}.featured-star{color:#a46b09;vertical-align:-2px;margin-right:7px}.document-number{color:#34473f;overflow-wrap:anywhere;max-width:240px}.document-size{white-space:nowrap}.status-badge{border-radius:var(--radius-control);color:#405149;text-transform:capitalize;white-space:nowrap;background:#e6ebe8;align-items:center;min-height:22px;padding:0 7px;font-size:12px;font-weight:700;display:inline-flex}.status-draft{color:#735116;background:#f4e5c5}.status-for_review{color:#325875;background:#dfe9f2}.status-issued_for_construction{color:#245d46;background:#d9ebe2}.status-as_built{color:#56466c;background:#e6e2ed}.document-table .view-document{border-color:var(--control-border);min-height:30px;color:var(--portal-action);align-items:center;gap:5px;padding:0 9px;font-size:12px;font-weight:700;display:inline-flex}.document-table .view-document:hover{border-color:var(--portal-action);background:#eaf3ef}@media (max-width:900px){.project-grid,.project-detail .filters{grid-template-columns:repeat(2,minmax(0,1fr))}.project-detail .filters button,.clear-filters{min-height:38px}.project-hero{background-size:cover}.project-hero.has-image:after{background:linear-gradient(90deg,#e3ebe7fa,#e3ebe7c7 72%,#e3ebe77a)}}@media (max-width:640px){.project-shell .topbar{flex-direction:row;align-items:center;min-height:60px;padding:0 20px}.topbar-action svg{display:none}.topbar-links{gap:14px}.project-admin-toolbar{flex-wrap:wrap;justify-content:flex-start;padding:14px 20px 0}.projects-index{width:min(100% - 32px,1240px);padding:42px 0 70px}.projects-index h1{margin-bottom:26px;font-size:34px}.project-grid{grid-template-columns:1fr;gap:12px}.project-item{min-height:154px;padding:20px}.project-card-body{min-height:112px}.project-item.has-cover{text-align:left;grid-template-columns:76px 1fr;align-items:center;gap:18px;padding:20px;display:grid}.project-item.has-cover .project-cover{border-width:3px;width:70px;margin:0}.project-item.has-cover .project-card-body{min-height:112px}.project-detail{padding:0 16px 60px}.project-hero{min-height:205px;margin:0 -16px;padding:22px 20px 28px}.project-heading{margin-top:44px}.project-heading h1{font-size:36px}.project-detail .segment-tabs{gap:24px;margin:0 -16px;padding:0 16px}.project-detail .filters{grid-template-columns:1fr}.project-detail .filters button{width:100%}.clear-filters{justify-content:center}.table-scroll{border-right:0;border-radius:6px 0 0 6px;margin-right:-16px}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
.user-dialog{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-control);width:min(540px,100% - 32px);max-height:calc(100dvh - 32px);color:var(--text-primary);background:var(--surface);margin:auto;padding:24px;overflow-y:auto}.user-dialog::backdrop{background:#17201d80}.user-dialog header{justify-content:space-between;align-items:start;gap:16px;margin-bottom:20px;display:flex}.user-dialog h2{overflow-wrap:anywhere;margin:0;font-size:22px;line-height:1.3}.user-dialog h3{margin:18px 0 12px;font-size:16px}.user-drawer{border-radius:0;width:min(520px,100%);height:100dvh;max-height:100dvh;margin:0 0 0 auto}.user-stacked-form,.user-drawer .admin-form{grid-template-columns:minmax(0,1fr);gap:16px;margin-top:20px;display:grid}.user-stacked-form .field input,.user-stacked-form .field select,.user-drawer .field select{box-sizing:border-box;border:1px solid var(--border);background:#fff;width:100%;padding:10px}.user-meta{color:var(--text-secondary);overflow-wrap:anywhere;margin-top:4px;font-size:13px;display:block}.user-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.user-icon{width:36px;height:36px;color:var(--accent);border:1px solid var(--border);border-radius:var(--radius-card);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.user-panel-section,.user-grant{border-top:1px solid var(--border);margin-top:20px;padding-top:16px}.user-grant>span{margin-top:6px;font-size:14px;display:block}.users-table{table-layout:fixed;width:100%;min-width:0}.users-table th:first-child{width:27%}.users-table td{overflow-wrap:anywhere;vertical-align:top}.users-table .status-badge{white-space:normal}.user-filters{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.user-filters label{flex:150px;min-width:0}.user-filters label:first-child{flex-basis:220px}.user-dialog .secret-code{overflow-wrap:anywhere;padding:16px 0;display:block}.password-page{max-width:480px}.password-page>form{margin-bottom:16px}@media (max-width:860px){.users-table thead{display:none}.users-table tr{border-bottom:1px solid var(--border);padding:14px;display:block}.users-table td{border:0;grid-template-columns:100px minmax(0,1fr);gap:8px;padding:7px 0;display:grid}.users-table td:before{content:attr(data-label);color:var(--text-secondary);font-size:12px}.users-table td>.user-meta{grid-column:2;margin:0}.users-page .admin-page-title{align-items:center;gap:12px}}body,.project-shell,.admin-shell{background:var(--sage);color:var(--text-primary);font-family:var(--font-sans)}.unified-nav,.project-shell .unified-nav{background:var(--surface);box-sizing:border-box;gap:12px;min-height:58px;padding:14px 28px}.unified-nav .brand{letter-spacing:0;white-space:nowrap}.unified-nav .admin-nav{flex:1;justify-content:center;gap:22px;font-size:14px}.unified-nav .admin-nav a{color:var(--text-secondary);border-bottom:2px solid #0000;padding:10px 0}.unified-nav .admin-nav a[aria-current]{color:var(--text-primary);border-color:var(--accent);font-weight:700}.unified-nav .topbar-links{flex-shrink:0;margin-left:auto}.ui-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:20px 22px}.project-card{padding:0}.project-card .project-item{border-radius:var(--radius-card);box-sizing:border-box;height:100%;box-shadow:none;border:0;transform:none}.project-card .project-item.has-cover{padding-top:24px}.project-card .project-item.has-cover .project-cover{outline-color:var(--border);margin:0 auto 18px}.project-card:has(a:hover){border-color:var(--accent)}.new-project{margin:0 0 24px}.new-project h2{margin:0 0 16px;font-size:16px;font-weight:700}.project-admin-card.admin-record{border:1px solid var(--border);align-content:start;gap:12px;margin:0;padding:20px 22px}.admin-project-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:14px;display:grid}.card-title{margin:0 0 4px;font-size:16px;font-weight:700;line-height:1.5}.card-meta{color:var(--text-secondary);margin:0 0 12px;font-size:14px}.card-actions{flex-wrap:wrap;align-items:center;gap:18px;font-size:13px;font-weight:600;display:flex}.card-actions a{color:var(--accent);text-decoration:none}.card-actions .admin-form .button{color:var(--accent);background:0 0;border:0;min-height:24px;padding:0;font-size:13px;font-weight:600}.project-editor summary{cursor:pointer;color:var(--text-secondary);font-size:13px;font-weight:600}.project-editor[open] summary{margin-bottom:18px}.project-editor .admin-form{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.project-editor .cover-field{grid-column:auto;min-width:0}.project-editor .cover-drop{grid-template-columns:48px minmax(0,1fr)}.project-editor .cover-browse{grid-column:1/-1}.project-editor .cover-preview{width:48px}.admin-shell .portal,.projects-index{width:min(100% - 56px,1344px);margin:28px auto}.portal h1,.projects-index h1{font-size:var(--text-xl);letter-spacing:0;margin:0 0 22px;font-weight:700}.portal .eyebrow,.page-label{color:var(--text-muted);letter-spacing:0;margin:0 0 4px;font-size:12px;font-weight:700}.admin-shell .admin-section{border-top:0;margin-bottom:28px;padding:0}.admin-section h2{margin:0 0 12px;font-size:16px;font-weight:700}.project-admin-card .admin-record-heading{border-bottom:1px solid var(--border);padding-bottom:18px}.project-admin-card .admin-record-heading strong{flex:1;font-size:18px}.new-project .admin-form,.project-admin-card>.admin-form:first-of-type{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:18px;display:grid}.new-project .field,.project-admin-card .field{min-width:0}.new-project .cover-field,.project-admin-card .cover-field{grid-column:span 2;min-width:0}.new-project .button,.project-admin-card .button{justify-self:start}.new-project>.admin-form{grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:14px}.new-project>.admin-form>.button{grid-area:1/5}.new-project-options{grid-column:1/-1}.new-project-options summary{cursor:pointer;color:var(--text-secondary);font-size:13px;font-weight:600}.new-project-options[open]>.field,.new-project-options[open]>.cover-field{max-width:640px;margin-top:16px}.button,.filters button{background:var(--accent);color:var(--accent-text);border-color:var(--accent);border-radius:var(--radius-control);min-height:38px;padding:9px 16px;font-size:14px}.button:hover,.filters button:hover{background:var(--accent-hover)}.button.secondary{background:var(--surface);color:var(--accent)}.field input,.field select,.field textarea,.filters input,.filters select{border-color:var(--border);color:var(--text-primary)}.back-link,.project-hero .back-link{color:var(--text-primary);font-weight:700}.project-hero{background-color:var(--sage-2)}.segment-tabs a.empty-segment{color:var(--text-muted);border-bottom-color:#0000}.segment-tabs a.active{color:var(--text-primary);border-bottom-color:var(--accent)}.segment-tabs span{background:var(--sage-2)}.status-badge{white-space:nowrap;text-transform:none;border-radius:100px;padding:3px 10px;font-size:12px;font-weight:700;line-height:1.5;display:inline-flex}.table-scroll{border-radius:var(--radius-card);box-shadow:none}.document-table th{color:var(--text-muted);background:var(--surface);padding:10px 12px;font-size:12px}.document-table td{padding:12px;font-size:14px}.field input,.field select,.field textarea,.admin-form .field input,.admin-form .field select,.admin-form .field textarea,.filters input,.filters select{border-radius:var(--radius-control);font-family:inherit;font-size:14px}.project-hero{min-height:200px;padding:24px 28px}.project-heading h1{font-size:var(--text-2xl);letter-spacing:0;font-weight:700}.segment-tabs a{letter-spacing:0;font-size:15px}.segment-tabs .empty-segment span{color:var(--text-muted);background:0 0}.project-admin-toolbar a{border-radius:var(--radius-control);font-size:13px}.project-admin-toolbar a:last-child{background:var(--accent);color:var(--accent-text)}@media (max-width:900px){.admin-project-grid{grid-template-columns:1fr}.new-project>.admin-form{grid-template-columns:repeat(2,minmax(0,1fr))}.new-project>.admin-form>.button{grid-area:auto}}.status-draft{background:var(--status-draft-bg);color:var(--status-draft-fg)}.status-for_review{background:var(--status-review-bg);color:var(--status-review-fg)}.status-issued_for_construction{background:var(--status-issued-bg);color:var(--status-issued-fg)}.status-as_built{background:var(--status-asbuilt-bg);color:var(--status-asbuilt-fg)}.status-active{background:var(--code-active-bg);color:var(--code-active-fg)}.status-revoked{background:var(--code-revoked-bg);color:var(--code-revoked-fg)}.status-expired{background:var(--code-expired-bg);color:var(--code-expired-fg)}@media (max-width:1050px){.unified-nav{flex-wrap:wrap}.unified-nav .admin-nav{flex-basis:100%;order:3;justify-content:flex-start}}@media (max-width:860px){.unified-nav{flex-direction:row;align-items:center;padding:16px 20px}.unified-nav .admin-nav{flex-wrap:nowrap;overflow-x:auto}.ui-card,.project-admin-card.admin-record{padding:18px}.project-card{padding:0}.new-project .admin-form,.project-admin-card>.admin-form:first-of-type{grid-template-columns:1fr}.new-project .cover-field,.project-admin-card .cover-field{grid-column:auto}}
.eyebrow{color:var(--accent);letter-spacing:.04em}p{color:var(--text-secondary)}.button{border-radius:var(--radius-control)}.button.danger{background:var(--surface);color:var(--danger);border-color:var(--danger)}.button.danger:hover{background:var(--danger-soft)}.confirm-actions .button.danger{background:var(--danger);color:#fff}.confirm-actions .button.danger:hover{background:var(--danger-hover)}.button:disabled{opacity:.6;cursor:default}.field input,.field select,.field textarea,.filters input,.filters select{border:1px solid var(--control-border)}.confirm-dialog p{margin:0 0 20px}.confirm-actions{justify-content:flex-end}.toast-region{z-index:200;pointer-events:none;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius-control);background:var(--text-primary);color:#fff;font-size:var(--text-sm);padding:12px 18px;font-weight:600;animation:.16s ease-out toast-in;box-shadow:0 8px 24px #16241c40}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.skeleton{border-radius:var(--radius-control);background:linear-gradient(90deg, var(--sage-2) 0%, #edf2ee 50%, var(--sage-2) 100%);background-size:200% 100%;animation:1.2s linear infinite shimmer;display:block}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton,.toast{animation:none}}.skeleton-label{width:80px;height:12px;margin-bottom:12px}.skeleton-title{width:min(360px,70%);height:36px;margin-bottom:28px}.skeleton-card{padding:0;overflow:hidden}.skeleton-cover{border-radius:0;height:120px}.skeleton-card-body{gap:10px;padding:18px 20px 22px;display:grid}.skeleton-line{width:50%;height:14px}.skeleton-line.wide{width:75%;height:18px}.skeleton-tabs{border-bottom:1px solid var(--border);gap:24px;padding:18px 0;display:flex}.skeleton-tab{width:90px;height:16px}.skeleton-search{height:44px;margin:24px 0 20px}.skeleton-rows{gap:8px;display:grid}.skeleton-row{height:52px}.state-page{max-width:640px}.state-reference{font-size:var(--text-xs);color:var(--text-muted)}.empty-results{color:var(--text-secondary);gap:6px;padding:32px 0;display:grid}.empty-results strong{color:var(--text-primary)}.empty-results a{color:var(--accent);font-weight:600}.segment-tabs{scrollbar-width:none}.segment-tabs::-webkit-scrollbar{display:none}.segment-tabs a.empty-segment{color:var(--text-muted)}.project-detail .segment-tabs span{font-size:var(--text-xs)}.project-detail .filters{grid-template-columns:minmax(220px,2fr) repeat(5,minmax(120px,1fr));align-items:end;margin:24px 0 12px}.filters label{font-size:var(--text-xs);color:var(--text-secondary)}.filter-panel{display:contents}.filter-toggle{display:none}.filter-search>span:first-child{display:block}.search-field{display:block;position:relative}.search-field svg{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.project-detail .filters input,.project-detail .filters select{height:40px}.search-field input{padding-left:36px}.filter-chips{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;display:flex}.filter-chip{border:1px solid var(--border);background:var(--surface);min-height:32px;color:var(--text-primary);font-size:var(--text-xs);border-radius:999px;align-items:center;gap:6px;padding:0 10px 0 12px;font-weight:600;text-decoration:none;display:inline-flex}.filter-chip:hover{border-color:var(--control-border)}.filter-chips .clear-filters{font-size:var(--text-xs);margin-left:4px}.results-count{font-size:var(--text-xs);color:var(--text-secondary)}.featured-star{display:inline-block}.document-date{white-space:nowrap}.filters{position:relative}.filters .hidden-submit,.project-detail .filters button.hidden-submit{clip:rect(0 0 0 0);border:0;width:1px;min-width:0;height:1px;min-height:0;margin:-1px;padding:0;position:absolute;top:0;left:0;overflow:hidden}.filters button.filter-toggle,.project-detail .filters button.filter-toggle{background:var(--surface);min-width:0;color:var(--accent)}.project-detail .filters button.filter-toggle:hover,.filters button.filter-toggle[aria-expanded=true]{background:var(--accent-soft);color:var(--accent)}.document-table{font-size:var(--text-sm)}.document-table th{font-size:var(--text-xs);color:var(--text-muted)}.document-table td{vertical-align:middle}.document-table .document-open{color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;padding:0;font-weight:650;background:0 0!important;border:0!important}.document-table .document-open:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.document-actions{white-space:nowrap;text-align:right}.document-actions>*+*{margin-left:6px}.document-table .view-document,.document-table .download-document{border:1px solid var(--control-border);border-radius:var(--radius-control);background:var(--surface);min-height:34px;color:var(--accent);align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.document-table .view-document:hover,.document-table .download-document:hover{background:var(--surface-hover);border-color:var(--accent)}.status-badge{font-size:var(--text-xs);border-radius:var(--radius-control)}.pagination{gap:16px}.pagination a{border:1px solid var(--control-border);border-radius:var(--radius-control);background:var(--surface);min-height:36px;color:var(--accent);align-items:center;padding:0 14px;font-weight:600;text-decoration:none;display:inline-flex}.pagination-spacer{min-width:90px}.document-control-error{color:var(--danger);font-size:var(--text-xs)}.viewer{border-radius:var(--radius-card)}.viewer-toolbar{border-bottom:1px solid var(--border);gap:16px}.viewer-heading{min-width:0;display:grid}.viewer-heading strong{color:var(--text-primary);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.viewer-heading span{color:var(--text-secondary);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.viewer-controls{flex-shrink:0}.viewer-controls button{border-radius:var(--radius-control);min-width:36px;min-height:36px;padding:0 8px;font-size:13px}.viewer-controls button.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.viewer-controls .viewer-divider{background:var(--border);width:1px;height:20px;margin:0 4px;padding:0}.viewer-message{min-height:240px;color:var(--text-secondary);font-size:var(--text-sm);place-items:center;gap:12px;display:grid}.upload-list{gap:12px;display:grid}.upload-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);gap:14px;padding:16px 18px;display:grid}.upload-card header{align-items:center;gap:12px;display:flex}.upload-card header strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-sm);flex:1;overflow:hidden}.upload-card header small{color:var(--text-muted);font-size:var(--text-xs)}.upload-fields{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.upload-fields .wide{grid-column:span 2}.upload-fields .field input,.upload-fields .field select{box-sizing:border-box;border-radius:var(--radius-control);background:#fff;width:100%;min-height:40px;padding:8px 10px}.upload-phase{border-radius:var(--radius-control);background:var(--code-expired-bg);min-height:24px;color:var(--code-expired-fg);font-size:var(--text-xs);align-items:center;padding:0 8px;font-weight:700;display:inline-flex}.upload-phase.complete{background:var(--code-active-bg);color:var(--code-active-fg)}.upload-phase.failed,.upload-phase.rejected{background:var(--code-revoked-bg);color:var(--code-revoked-fg)}.upload-phase.uploading,.upload-phase.preparing,.upload-phase.validating{background:var(--status-review-bg);color:var(--status-review-fg)}.upload-remove{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);width:36px;height:36px;color:var(--text-secondary);justify-content:center;align-items:center;display:inline-flex}.upload-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.upload-drop{border-radius:var(--radius-card);justify-items:start;gap:10px;display:grid}.upload-drop p{margin:0}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 28px;display:grid}.stat-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);color:inherit;gap:4px;padding:18px 20px;text-decoration:none;display:grid}.stat-card:hover{border-color:var(--control-border)}.stat-card strong{font-size:var(--text-xl);font-variant-numeric:tabular-nums;line-height:1.1}.stat-card span{color:var(--text-secondary);font-size:var(--text-sm)}.stat-card.warning strong{color:var(--warning)}.activity-list{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);margin:0;padding:0;list-style:none;display:grid}.activity-list li{border-top:1px solid var(--border);font-size:var(--text-sm);justify-content:space-between;gap:16px;padding:12px 16px;display:flex}.activity-list li:first-child{border-top:0}.activity-list time{color:var(--text-muted);font-size:var(--text-xs);flex-shrink:0}.grant-chips{flex-wrap:wrap;gap:6px;display:flex}.grant-chip{border-radius:var(--radius-control);background:var(--accent-soft);color:var(--accent);font-size:var(--text-xs);white-space:nowrap;padding:2px 8px;font-weight:600;display:inline-flex}@media (max-width:1050px){.unified-nav .admin-nav{scrollbar-width:none;padding-right:32px;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000);mask-image:linear-gradient(90deg,#000 85%,#0000)}}@media (max-width:1100px){.project-detail .filters{grid-template-columns:minmax(200px,2fr) repeat(3,minmax(110px,1fr))}.stat-grid,.upload-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:860px){.field input,.field select,.field textarea,.filters input,.filters select,.admin-form .field input,.admin-form .field select,.admin-form .field textarea{font-size:var(--text-md)}.project-detail .filters{grid-template-columns:1fr auto;gap:10px}.filter-search>span:first-child{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.filter-toggle{min-height:var(--touch);border:1px solid var(--control-border);border-radius:var(--radius-control);background:var(--surface);color:var(--accent);align-items:center;gap:8px;padding:0 14px;font-weight:600;display:inline-flex}.filter-toggle[aria-expanded=true]{background:var(--accent-soft)}.filter-panel{display:none}.filter-panel.is-open{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);grid-column:1/-1;grid-template-columns:1fr 1fr;gap:12px;padding:14px;display:grid}.project-detail .filters input,.project-detail .filters select{height:var(--touch)}:is(.project-detail .table-scroll,.admin-shell .table-scroll:has(.responsive-table)){box-shadow:none;background:0 0;border:0;margin-right:0;overflow:visible}.responsive-table{min-width:0!important}.responsive-table thead{display:none}.responsive-table tbody{gap:10px;display:grid}.responsive-table tr{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;padding:16px;display:grid}.responsive-table tbody tr:hover{background:var(--surface)}.responsive-table td{border:0;min-width:0;padding:0;display:block}.responsive-table td[data-label]:before{content:attr(data-label);color:var(--text-muted);font-size:var(--text-xs);margin-bottom:2px;font-weight:600;display:block}.responsive-table .document-title{font-size:var(--text-md);grid-column:1/-1}.responsive-table .document-actions{text-align:left;grid-column:1/-1;gap:8px;display:flex}.responsive-table .document-actions>*+*{margin-left:0}.responsive-table .document-actions>button{flex:1;justify-content:center}.responsive-table .document-admin-actions{flex-wrap:wrap}.document-table .view-document,.document-table .download-document,.icon-button,.user-icon,.upload-remove,.pagination a,.clear-filters,.topbar-action,.filter-chip,.button{min-height:var(--touch)}.icon-button,.user-icon,.upload-remove{min-width:var(--touch)}.segment-tabs a{min-height:var(--touch);box-sizing:border-box}.project-detail .segment-tabs{padding-right:40px;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000);mask-image:linear-gradient(90deg,#000 85%,#0000)}.project-hero{min-height:150px}.project-heading{margin-top:28px}.project-heading h1{font-size:var(--text-xl)}.viewer-backdrop{padding:0}.viewer{border-radius:0;width:100%;height:100%}.viewer-backdrop{place-items:stretch stretch}.viewer-controls .viewer-fit,.viewer-controls .viewer-zoom,.viewer-controls .viewer-divider,.viewer-controls .viewer-fullscreen{display:none}.viewer-toolbar{padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border);border-bottom:0;flex-direction:column;order:2;align-items:stretch;gap:6px}.viewer-heading{padding:0 6px}.viewer-controls{justify-content:space-between;width:100%;overflow-x:auto}.viewer-controls button{min-height:var(--touch);min-width:var(--touch)}.viewer-stage{order:1;padding:8px}.stat-grid{grid-template-columns:1fr 1fr}.upload-fields{grid-template-columns:1fr}.upload-fields .wide{grid-column:auto}.activity-list li{flex-direction:column;gap:2px}}@media (pointer:coarse){.document-table .view-document,.document-table .download-document,.viewer-controls button,.icon-button{min-height:var(--touch)}}.document-table .button{background:var(--accent);color:var(--accent-text);border:1px solid var(--accent)}.document-table .button:hover{background:var(--accent-hover)}.document-table .button.secondary{background:var(--surface);color:var(--accent);border-color:var(--control-border)}.document-table .button.danger{background:var(--surface);color:var(--danger);border-color:var(--danger)}.document-table .confirm-actions .button.danger{background:var(--danger);color:#fff}.user-grant .admin-form{margin-top:10px;display:block}.user-grant .admin-form .button{width:auto;min-height:36px;padding:0 14px}.auth-page>p{max-width:520px}.auth-page h1{font-weight:700;font-size:var(--text-xl)}.form-alert{border-left:3px solid var(--danger);border-radius:var(--radius-control);background:var(--danger-soft);color:var(--danger);font-size:var(--text-sm);margin:0;padding:10px 12px}.form-alert:focus{outline:none}.form-success{border-left:3px solid var(--code-active-fg);border-radius:var(--radius-control);background:var(--code-active-bg);gap:6px;max-width:400px;margin-top:24px;padding:14px 16px;display:grid}.form-success p{color:var(--text-primary);margin:0}.auth-links{font-size:var(--text-sm);flex-wrap:wrap;gap:18px;margin:4px 0 0;display:flex}.auth-links a{color:var(--accent);font-weight:600}.password-input{display:block;position:relative}.password-input input{box-sizing:border-box;width:100%;padding-right:48px}.password-toggle{border-radius:var(--radius-control);width:40px;height:40px;color:var(--text-secondary);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.password-toggle:hover{background:var(--surface-hover);color:var(--text-primary)}.field-hint{color:var(--text-muted);font-size:var(--text-xs);margin-top:-2px;font-weight:500;display:block}.field-hint.ok{color:var(--code-active-fg)}.form .field-hint{margin-top:-10px}.prefixed-input{border:1px solid var(--control-border);border-radius:var(--radius-control);background:#fff;align-items:stretch;display:flex;overflow:hidden}.prefixed-input>span{color:var(--text-muted);white-space:nowrap;align-items:center;padding:0 2px 0 10px;font-weight:500;display:inline-flex}.prefixed-input input{flex:1;min-width:0;border:0!important;border-radius:0!important;padding-left:2px!important}.code-form{gap:16px;margin-top:4px;display:grid}.code-form .admin-grants{border:1px solid var(--border);border-radius:var(--radius-card);margin:0;padding:14px}.code-form legend,.apply-all legend{font-size:var(--text-sm);padding:0 6px;font-weight:700}.code-form .grant-row{grid-template-columns:1fr 1fr auto;align-items:end;gap:10px;display:grid}.link-button{color:var(--accent);cursor:pointer;background:0 0;border:0;justify-self:start;align-items:center;gap:6px;padding:6px 0;font-weight:600;display:inline-flex}.link-button:disabled{opacity:.5;cursor:default}.code-created{gap:14px;display:grid}.code-created h3{font-size:var(--text-lg);margin:0}.code-created p{margin:0}.code-created .secret-code{border:1px dashed var(--control-border);border-radius:var(--radius-control);background:var(--surface-hover);letter-spacing:.08em;text-align:center;margin:0;padding:14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:26px}.code-created .button{gap:8px}.invitation-preview summary{cursor:pointer;color:var(--text-secondary);font-size:var(--text-sm);font-weight:600}.invitation-preview pre{border-radius:var(--radius-control);background:var(--sage);font:inherit;font-size:var(--text-sm);white-space:pre-wrap;margin:8px 0 0;padding:12px}.code-created-footer{border-top:1px solid var(--border);justify-content:space-between;padding-top:12px}.preset-row{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.confirm-dialog .field{margin-bottom:16px}.confirm-dialog .field input{box-sizing:border-box;border-radius:var(--radius-control);width:100%;min-height:42px;padding:8px 10px}.document-admin-actions .button{gap:6px}.nowrap{white-space:nowrap}.apply-all{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);margin:0;padding:14px 16px 16px}.apply-all .field-hint{margin:0 0 12px}.apply-all select,.apply-all input{box-sizing:border-box;border-radius:var(--radius-control);background:#fff;width:100%;min-height:40px;padding:8px 10px}.users-table .status-badge{justify-self:start;width:auto}@media (hover:none){.stat-card:hover,.project-item:hover{border-color:var(--border);box-shadow:none;transform:none}.project-card:has(a:hover){border-color:var(--border);box-shadow:none;transform:none}}@media (max-width:860px){.responsive-table .wide-cell{grid-column:1/-1}.user-filters .filter-panel.is-open{flex-basis:100%;grid-template-columns:1fr}.user-filters .filter-search{flex:auto}.code-form .grant-row{grid-template-columns:1fr}.code-created-footer{flex-direction:column-reverse;align-items:stretch}}.document-admin-actions>.button{min-height:34px;padding:0 10px;font-size:12px}@media (max-width:860px){.grant-chip{white-space:normal;overflow-wrap:anywhere}.document-admin-actions>.button{min-height:var(--touch)}}.log-tabs{margin:8px 0 20px}.log-filters{margin-bottom:8px}.toast{pointer-events:auto;align-items:center;gap:14px;display:flex}.toast-error{background:var(--danger)}.toast-action{border-radius:var(--radius-control);color:#fff;min-height:32px;font:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff80;padding:0 10px;font-weight:700}.toast-action:focus-visible{outline-offset:2px;outline:2px solid #fff}.status-superseded{background:var(--surface);color:var(--superseded-fg);box-shadow:inset 0 0 0 1px #aab5af}.revision-chip{white-space:nowrap;font-size:var(--text-sm);align-items:center;gap:6px;display:inline-flex}.revision-chip-rev{color:var(--text-primary);font-weight:700}.revision-chip-earlier{font-size:var(--text-xs);color:var(--text-secondary)}a.revision-chip-earlier{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.segmented{border:1px solid var(--border);background:var(--surface);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.segmented a{color:var(--text-secondary);font-size:var(--text-sm);white-space:nowrap;border-radius:999px;padding:6px 14px;font-weight:600;text-decoration:none}.segmented a.is-active{background:var(--accent);color:var(--accent-text)}@media (hover:hover){.segmented a:not(.is-active):hover{background:var(--surface-hover);color:var(--text-primary)}}@media (max-width:860px){.segmented a{min-height:var(--touch);align-items:center;display:inline-flex}}.results-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:4px 0 12px;display:flex}.results-bar .results-count{margin:0}.document-table tr.is-superseded{background:var(--superseded-bg)}.document-table tr.is-superseded td,.document-table tr.is-superseded .document-open{color:var(--superseded-fg)}.revision-superseded{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.viewer-revision select{border:1px solid var(--control-border);border-radius:var(--radius-control);background:var(--surface);max-width:min(420px,60vw);min-height:30px;color:var(--text-secondary);font:inherit;font-size:var(--text-xs);margin-top:2px;padding:2px 6px}.viewer-superseded{border-bottom:1px solid var(--warning-line);background:var(--warning-soft);color:var(--warning-text);font-size:var(--text-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-weight:600;display:flex}.viewer-superseded .button{min-height:34px}.superseded-mark{pointer-events:none;color:#9c2c2c38;letter-spacing:.08em;-webkit-user-select:none;user-select:none;place-items:center;font-size:clamp(32px,9vw,120px);font-weight:800;display:grid;position:absolute;inset:0;transform:rotate(-24deg)}@media (max-width:860px){.viewer-superseded{order:0}.viewer-revision select{width:100%;max-width:100%;min-height:var(--touch)}}.admin-drawings .revision-history-row td{background:var(--surface);padding-top:0}.admin-drawings tr:has(+.revision-history-row) td{border-bottom:0}.revision-history-row summary{width:fit-content;color:var(--accent);font-size:var(--text-sm);cursor:pointer;padding:4px 0 10px;font-weight:600}.revision-history{border-left:3px solid var(--border);gap:0;margin:0 0 8px;padding:0;list-style:none;display:grid}.revision-history li{background:var(--superseded-bg);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 12px;display:flex}.revision-history li+li{border-top:1px solid var(--border)}.revision-history-rev{min-width:56px;color:var(--text-primary);font-weight:700}.revision-history-meta{color:var(--text-secondary);font-size:var(--text-xs)}.revision-history .document-admin-actions{align-items:center;gap:8px;margin-left:auto;display:flex}@media (max-width:860px){.responsive-table tr.revision-history-row{border-radius:0 0 var(--radius-card) var(--radius-card);border-top:0;margin-top:-12px;padding:0 16px 12px;display:block}.revision-history .document-admin-actions{width:100%;margin-left:0}}.page-lede{max-width:72ch;color:var(--text-secondary);font-size:var(--text-sm);margin:-6px 0 20px}.upload-steps{counter-reset:step;flex-wrap:wrap;gap:8px;margin:0 0 18px;padding:0;list-style:none;display:flex}.upload-steps li{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:var(--text-sm);border-radius:999px;align-items:center;gap:8px;padding:6px 14px 6px 6px;font-weight:600;display:inline-flex}.upload-steps li span{background:var(--sage-2);width:24px;height:24px;color:var(--text-primary);font-size:var(--text-xs);border-radius:50%;place-items:center;display:inline-grid}.upload-steps li.is-active{border-color:var(--accent);color:var(--text-primary)}.upload-steps li.is-active span{background:var(--accent);color:var(--accent-text)}.upload-steps li.is-done span{background:var(--status-issued-bg);color:var(--status-issued-fg)}.upload-summary{font-size:var(--text-sm);color:var(--text-primary);margin:4px 0 12px;font-weight:600}.upload-review{border-radius:var(--radius-control);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;padding:8px 12px;font-weight:600;display:flex}.upload-review svg{flex:none}.upload-review.ok{background:var(--status-issued-bg);color:var(--status-issued-fg)}.upload-review.info{background:var(--status-review-bg);color:var(--status-review-fg)}.upload-review.warning{background:var(--warning-soft);color:var(--warning-text);box-shadow:inset 3px 0 0 var(--warning-line)}.upload-review .button{min-height:30px;font-size:var(--text-xs);margin-left:auto;padding:0 10px}.upload-card.needs-attention{border-color:var(--warning-line)}.field-warning input{border-color:var(--warning-line);background:#fffaf0}.upload-card .upload-review{margin:0}.upload-done{border:1px solid var(--status-issued-fg);border-radius:var(--radius-card);background:var(--status-issued-bg);color:var(--status-issued-fg);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;display:flex}.upload-done span{color:var(--text-primary);font-size:var(--text-sm);flex:200px}.admin-page-title .button{gap:8px}.apply-all,.upload-fields>.field{min-width:0}.upload-fields input,.upload-fields select{box-sizing:border-box;width:100%;min-width:0}.table-scroll{min-width:0;max-width:100%}.log-filters .filter-search{flex-basis:240px}.log-filters .search-field input{box-sizing:border-box;width:100%}
.app-shell{box-sizing:border-box;background:var(--sage);align-items:flex-start;gap:8px;min-height:100vh;padding:8px;display:flex}.app-main{box-sizing:border-box;border:1px solid var(--border);background:var(--surface);border-radius:12px;flex:1;min-width:0;min-height:calc(100vh - 16px)}.app-main>main,.app-main>.portal,.app-main>.main{box-sizing:border-box;width:auto;max-width:1320px;margin:0 auto;padding:28px clamp(16px,3vw,40px) 56px}.app-main .portal h1,.app-main .main h1{margin-top:6px}.skip-link{z-index:300;border-radius:var(--radius-control);background:var(--accent);color:#fff;padding:10px 14px;font-weight:700;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}.app-sidebar{box-sizing:border-box;height:calc(100vh - 16px);font-size:var(--text-sm);flex-direction:column;flex:0 0 232px;gap:18px;padding:6px 6px 10px;display:flex;position:sticky;top:8px;overflow-y:auto}.sidebar-brand{min-height:40px;color:var(--text-primary);letter-spacing:.06em;align-items:center;gap:10px;padding:4px 8px;font-size:13px;font-weight:700;text-decoration:none;display:flex}.sidebar-brand span{background:var(--accent);color:#fff;letter-spacing:0;border-radius:7px;place-items:center;width:28px;height:28px;font-size:13px;display:grid}.sidebar-search{background:var(--surface);width:100%;min-height:38px;color:var(--text-secondary);font:inherit;text-align:left;cursor:pointer;border:1px solid #d0d8d2;border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:flex}.sidebar-search span{flex:1}kbd{border:1px solid var(--border);color:var(--text-secondary);background:#f6f8f6;border-radius:4px;padding:1px 5px;font-family:inherit;font-size:11px;font-weight:600}.sidebar-group{flex-direction:column;gap:2px;display:flex}.sidebar-heading{color:var(--text-secondary);font-size:var(--text-xs);padding:0 10px 4px;font-weight:600}.sidebar-link{min-height:36px;color:var(--text-primary);border-radius:6px;align-items:center;gap:10px;padding:0 10px;text-decoration:none;display:flex}.sidebar-link span:not(.project-avatar):not(.sidebar-badge):not(.sidebar-dot){text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sidebar-link[aria-current=page]{background:var(--surface);font-weight:600;box-shadow:0 1px 2px #16241c1a}.sidebar-link svg{color:var(--text-secondary);flex:none}.sidebar-badge{box-sizing:border-box;background:var(--new);color:#fff;border-radius:999px;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;display:grid}.sidebar-dot{background:var(--new);border-radius:50%;flex:none;width:8px;height:8px}.sidebar-nested{border-left:1px solid var(--border);flex-direction:column;gap:2px;margin:2px 0 4px 18px;padding-left:8px;display:flex}.sidebar-back{color:var(--text-secondary);align-items:center;gap:8px;padding:0 10px;font-weight:600;text-decoration:none;display:inline-flex}.sidebar-empty{font-size:var(--text-xs);margin:0;padding:0 10px}.sidebar-spacer{flex:1}@media (hover:hover){.sidebar-link:hover:not([aria-current=page]){background:#ffffff8c}.sidebar-search:hover{border-color:var(--control-border)}}.project-avatar{letter-spacing:.02em;border-radius:5px;flex:none;place-items:center;width:20px;height:20px;font-size:9px;font-weight:700;display:grid}.project-avatar-lg{border-radius:10px;width:48px;height:48px;font-size:16px}.user-menu{position:relative}.user-menu-trigger{width:100%;min-height:48px;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:6px 8px;display:flex}.user-menu-trigger:hover,.user-menu-trigger:focus-visible{background:#fff9}.user-menu-text{flex:1;min-width:0;display:grid}.user-menu-text strong,.user-menu-text span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-menu-text span{color:var(--text-secondary);font-size:var(--text-xs)}.user-avatar{background:var(--accent);color:#fff;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:grid}.user-menu-panel{border:1px solid var(--border);background:var(--surface);width:220px;box-shadow:var(--shadow-popover);border-radius:10px;margin:0;padding:6px;position:fixed;inset:auto auto 72px 16px}.user-menu-panel a,.user-menu-panel button{width:100%;min-height:40px;color:var(--text-primary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:0 10px;text-decoration:none;display:flex}.user-menu-panel a:hover,.user-menu-panel button:hover,.user-menu-panel a:focus-visible,.user-menu-panel button:focus-visible{background:var(--surface-hover)}.user-menu-panel form{margin:0}.mobile-topbar,.bottom-tabs,.mobile-sections{display:none}.icon-only{width:44px;height:44px;color:var(--text-primary);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:inline-grid}@media (max-width:860px){.app-shell{background:var(--surface);padding:0;display:block}.app-sidebar{display:none}.app-main{border:0;border-radius:0;min-height:0}.app-main>main,.app-main>.portal,.app-main>.main{padding:16px 16px 40px}.mobile-topbar{z-index:40;border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:8px;min-height:56px;padding:0 8px 0 4px;display:flex;position:sticky;top:0}.mobile-topbar-actions{align-items:center;gap:4px;display:inline-flex}.mobile-topbar-link{color:var(--accent);padding:0 10px;font-weight:600;text-decoration:none}.app-shell-portal{padding-bottom:calc(64px + env(safe-area-inset-bottom))}.bottom-tabs{z-index:60;padding:4px 4px calc(4px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;inset:auto 0 0}.bottom-tabs a,.bottom-tabs button{min-height:52px;color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;justify-items:center;gap:2px;padding:6px 0 4px;font-size:11px;font-weight:600;text-decoration:none;display:grid;position:relative}.bottom-tabs [aria-current=page]{color:var(--accent)}.tab-badge{box-sizing:border-box;background:var(--new);color:#fff;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-style:normal;line-height:18px;position:absolute;top:2px;left:calc(50% + 6px)}.mobile-sections{z-index:39;border-bottom:1px solid var(--border);background:var(--surface);scrollbar-width:none;gap:4px;padding:6px 8px;display:flex;position:sticky;top:56px;overflow-x:auto}.mobile-sections a{min-height:40px;color:var(--text-secondary);font-size:var(--text-sm);border-radius:999px;flex:none;align-items:center;padding:0 12px;font-weight:600;text-decoration:none;display:inline-flex}.mobile-sections a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}}.sheet{background:var(--surface);width:100%;max-width:560px;max-height:85vh;color:var(--text-primary);border:0;border-radius:18px 18px 0 0;margin:auto auto 0;padding:0}.sheet::backdrop{background:#101c1873}.sheet-body{padding:8px 16px calc(20px + env(safe-area-inset-bottom))}.sheet header{justify-content:space-between;align-items:center;display:flex}.sheet h2{margin:6px 0;font-size:17px}.sheet-links{display:grid}.sheet-links a,.sheet-links button{border:0;border-bottom:1px solid var(--border);min-height:52px;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;align-items:center;gap:12px;padding:0 4px;font-weight:600;text-decoration:none;display:flex}.sheet-links [aria-current=page]{color:var(--accent)}.sheet-links .project-avatar{width:28px;height:28px;font-size:11px}.sheet-links span:not(.project-avatar):not(.sidebar-dot){flex:1}.sheet-links form{margin:0}.sheet-account{align-items:center;gap:12px;padding:8px 0 12px;display:flex}.sheet-account div{display:grid}.sheet-account span:not(.user-avatar){color:var(--text-secondary);font-size:var(--text-sm)}.project-header{gap:12px;margin-bottom:8px;display:grid}.breadcrumb{color:var(--text-secondary);font-size:var(--text-sm);align-items:center;gap:8px;display:flex}.breadcrumb a{color:var(--text-secondary);text-decoration:none}.breadcrumb a:hover{color:var(--accent);text-decoration:underline}.breadcrumb [aria-current=page]{color:var(--text-primary);font-weight:600}.project-header-main{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.project-thumb{background:var(--sage-2) center / cover no-repeat;border-radius:10px;flex:none;width:48px;height:48px}.project-header-text{flex:260px;min-width:0}.project-header-text h1{line-height:1.2;margin:0!important;font-size:26px!important}.project-header-text p{color:var(--text-secondary);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 0;display:flex}.project-header-text p i{font-style:normal}.project-header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-header-actions .button{min-height:38px;font-size:var(--text-sm);gap:8px;padding:0 14px}@media (max-width:860px){.project-header-actions{width:100%}.project-header-actions .button{min-height:var(--touch);flex:auto}.project-header-text h1{font-size:22px!important}}.command-palette{background:var(--surface);width:min(680px,100% - 32px);max-height:calc(100vh - 120px);color:var(--text-primary);border:0;border-radius:14px;margin:96px auto auto;padding:0;box-shadow:0 24px 64px #16241c47,0 2px 6px #16241c1f}.command-palette::backdrop{background:#16241c6b}.command-box{flex-direction:column;max-height:calc(100vh - 120px);display:flex}.command-input{border-bottom:1px solid var(--border);min-height:60px;color:var(--text-secondary);align-items:center;gap:12px;padding:0 16px;display:flex}.command-input input{min-width:0;color:var(--text-primary);font:inherit;background:0 0;border:0;outline:none;flex:1;font-size:18px}.command-scope{color:var(--text-secondary);font-size:var(--text-xs);border-bottom:1px solid #eef2ef;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;display:flex}.command-scope label{align-items:center;gap:8px;font-weight:600;display:inline-flex}.command-results{flex:1;min-height:0;padding:8px;overflow:auto}.command-group{color:var(--text-secondary);font-size:var(--text-xs);padding:8px 10px 6px;font-weight:600}.command-option{cursor:pointer;border-radius:8px;align-items:center;gap:12px;min-height:52px;padding:6px 10px;display:flex}.command-option[aria-selected=true]{background:var(--accent-soft)}.command-icon{width:32px;height:32px;color:var(--text-secondary);background:#f1f4f2;border-radius:6px;flex:none;place-items:center;display:grid}.command-option[aria-selected=true] .command-icon{background:var(--surface);color:var(--accent)}.command-text{flex:1;min-width:0;display:grid}.command-text strong,.command-text span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.command-text span{color:var(--text-secondary);font-size:13px}.command-badge{background:var(--status-review-bg);color:var(--status-review-fg);font-size:var(--text-xs);border-radius:999px;flex:none;padding:2px 9px;font-weight:600}.command-badge.superseded{background:var(--superseded-bg);color:var(--superseded-fg)}.command-hint{color:var(--text-secondary);margin:0;padding:18px 10px}.command-footer{border-top:1px solid var(--border);color:var(--text-secondary);font-size:var(--text-xs);background:#f6f8f6;flex-wrap:wrap;align-items:center;gap:6px 18px;padding:10px 16px;display:flex}.command-footer span{align-items:center;gap:6px;display:inline-flex}.command-footer-end{margin-left:auto}@media (max-width:860px){.command-palette{border-radius:0;width:100%;max-width:none;height:100%;max-height:none;margin:0}.command-box{height:100%;max-height:none}.command-footer{display:none}.command-option{min-height:56px}}.peek-layout.has-peek{grid-template-columns:minmax(0,1fr) 380px;align-items:start;display:grid}.has-peek .document-table th,.has-peek .document-table td{padding-left:10px;padding-right:10px}.has-peek .document-table .document-actions{white-space:nowrap}.peek-main{min-width:0}.has-peek .peek-main .table-scroll{border-top-right-radius:0;border-bottom-right-radius:0}.has-peek .document-table .col-type,.has-peek .document-table .col-size,.has-peek .document-table .col-discipline{display:none}.has-peek .document-table .view-label,.has-peek .document-table .download-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.has-peek .document-table .view-document,.has-peek .document-table .download-document{padding:0 9px}.document-table tr:has(.document-open[aria-expanded=true]) td{background:var(--accent-soft)}.document-table .document-open[aria-expanded=true]{color:var(--accent)}.peek-scrim{display:none}.peek-panel{box-sizing:border-box;border:1px solid var(--border);background:#f8faf9;border-left:0;border-radius:0 12px 12px 0;flex-direction:column;gap:16px;max-height:calc(100vh - 32px);padding:18px 20px 24px;animation:.16s ease-out peek-in;display:flex;position:sticky;top:16px;overflow-y:auto}@keyframes peek-in{0%{opacity:.4;transform:translate(12px)}}@media (prefers-reduced-motion:reduce){.peek-panel{animation:none}}.peek-header{justify-content:space-between;align-items:start;gap:12px;display:flex}.peek-header>div{gap:2px;min-width:0;display:grid}.peek-kicker{color:var(--text-secondary);font-size:var(--text-sm)}.peek-header h2{overflow-wrap:anywhere;outline:none;margin:0;font-size:20px;line-height:1.25}.peek-chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.peek-rev-chip{border:1px solid var(--control-border);background:var(--surface);min-height:26px;font-size:var(--text-xs);border-radius:999px;align-items:center;padding:0 10px;font-weight:700;display:inline-flex}.peek-rev-chip.is-superseded{border-color:var(--warning-line);background:var(--warning-soft);color:var(--warning-text)}.peek-preview{border:1px solid var(--border);background:var(--surface);cursor:zoom-in;border-radius:10px;place-items:center;width:100%;min-height:180px;padding:8px;display:grid;position:relative;overflow:hidden}.peek-preview:hover{border-color:var(--control-border);box-shadow:0 2px 10px #16241c14}.peek-preview canvas{max-width:100%;display:block;height:auto!important}.peek-preview-message{color:var(--text-secondary);font-size:var(--text-sm);padding:60px 0}.peek-message{color:var(--text-secondary);font-size:var(--text-sm);margin:0}.peek-actions{flex-wrap:wrap;gap:8px;display:flex}.peek-actions .button{align-items:center;gap:6px;min-height:40px;display:inline-flex}.peek-actions .button:first-child{flex:1;justify-content:center}.peek-actions .peek-icon{justify-content:center;width:40px;min-width:40px;padding:0}.peek-actions .button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.peek-qr{border:1px solid var(--border);background:#fff;border-radius:10px;justify-items:center;gap:8px;margin:0;padding:14px;display:grid}.peek-qr svg{width:180px;height:180px;display:block}.peek-qr figcaption{max-width:300px;color:var(--text-secondary);font-size:var(--text-xs);text-align:center}.peek-facts{grid-template-columns:max-content minmax(0,1fr);gap:8px 20px;margin:0;display:grid}.peek-facts div{display:contents}.peek-facts dt{color:var(--text-secondary);font-size:var(--text-sm)}.peek-facts dd{font-size:var(--text-sm);overflow-wrap:anywhere;margin:0}.peek-description{color:var(--text-secondary);font-size:var(--text-sm);margin:0;line-height:1.55}.peek-history h3{border-bottom:1px solid var(--border);font-size:var(--text-sm);justify-content:space-between;align-items:baseline;margin:0 0 6px;padding-bottom:8px;display:flex}.peek-history h3 span{color:var(--text-secondary);font-size:var(--text-xs);font-weight:500}.peek-history ol{margin:0;padding:0;list-style:none;display:grid}.peek-history li{grid-template-columns:10px minmax(0,1fr) auto;align-items:start;gap:10px;padding:10px 0;display:grid}.peek-history li+li{border-top:1px solid #eef2ef}.peek-history li.is-this strong{color:var(--accent)}.peek-history p{color:var(--text-secondary);font-size:var(--text-sm);margin:2px 0 0;line-height:1.45}.peek-dot{background:#c3ccc7;border-radius:50%;width:9px;height:9px;margin-top:6px}.peek-dot.is-current{background:var(--accent)}.peek-current{color:var(--accent);font-size:var(--text-xs);font-weight:700}.peek-superseded{color:var(--text-secondary);font-size:var(--text-xs);font-weight:600}.link-button{color:var(--accent);font:inherit;font-size:var(--text-sm);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}@media (max-width:860px){.peek-layout.has-peek{display:block}.peek-scrim{z-index:70;background:#101c1866;display:block;position:fixed;inset:0}.peek-panel{z-index:71;max-height:88dvh;padding-bottom:calc(24px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--border);background:var(--surface);border-radius:16px 16px 0 0;animation-name:peek-up;position:fixed;inset:auto 0 0;box-shadow:0 -12px 40px #101c1833}@keyframes peek-up{0%{opacity:.6;transform:translateY(32px)}}.peek-actions .button{min-height:var(--touch)}.peek-actions .peek-icon{width:var(--touch)}.link-button{min-height:var(--touch)}}.viewer-drawings{border-bottom:1px solid var(--border);color:var(--text-secondary);font-size:var(--text-xs);background:#f6f8f6;justify-content:space-between;align-items:center;gap:12px;padding:6px 12px;font-weight:600;display:flex}.viewer-drawings button{border-radius:var(--radius-control);min-height:32px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.viewer-drawings button:hover:not(:disabled){border-color:var(--control-border);background:var(--surface)}.viewer-drawings button:disabled{color:var(--text-disabled,#a3aea8);cursor:default}.viewer-stage{touch-action:pan-x pan-y}@media (max-width:860px){.viewer-drawings{order:2}.viewer-toolbar{order:3}.viewer-drawings button{min-height:var(--touch)}}.home{gap:32px;display:grid}.home-header{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;display:flex}.home-header h1{letter-spacing:-.02em;margin:0;font-size:30px}.home-header p{color:var(--text-secondary);margin:6px 0 0}.home-header .button{align-items:center;gap:6px;display:inline-flex}.home-section h2{margin:0 0 12px;font-size:16px}.home-section .project-grid{margin-top:0}.update-groups{gap:12px;display:grid}.update-group{padding:0;overflow:hidden}.update-group>header{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:12px 16px;display:flex}.update-group>header a{color:var(--text-primary);text-decoration:none}.update-group>header a:hover{text-decoration:underline}.update-count{color:var(--text-secondary);font-size:var(--text-xs);margin-left:auto;font-weight:600}.update-group ul,.recent-list{margin:0;padding:0;list-style:none}.update-group li+li,.recent-list li+li{border-top:1px solid #eef2ef}.update-group li a,.recent-list li a{min-height:48px;color:var(--text-primary);grid-template-columns:72px 100px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:6px 16px;text-decoration:none;display:grid}.update-group li a:hover,.recent-list li a:hover{background:var(--surface-hover)}.update-number{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.update-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.update-detail{color:var(--text-secondary);white-space:nowrap;font-size:13px}.update-group time{min-width:72px;color:var(--text-secondary);font-size:var(--text-xs);text-align:right;white-space:nowrap}.update-more{align-items:center;gap:4px;padding:10px 16px;font-size:13px;font-weight:600;display:inline-flex}.update-badge{letter-spacing:.02em;white-space:nowrap;border-radius:999px;justify-self:start;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.update-new{background:var(--accent-soft);color:var(--accent)}.update-updated{background:var(--status-review-bg);color:var(--status-review-fg)}.update-status{color:var(--text-secondary);background:#eef2ef}.document-title .update-badge{vertical-align:2px;margin-left:8px}.recent-list{border:1px solid var(--border);background:var(--surface);border-radius:12px;overflow:hidden}.recent-list li a{color:var(--text-primary);grid-template-columns:20px 100px minmax(0,1fr) auto}.recent-list svg{color:var(--text-secondary)}.recent-project{color:var(--text-secondary);white-space:nowrap;font-size:13px}.project-new{background:var(--accent);color:#fff;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:11px}.updates-banner{border:1px solid var(--accent-line,#cfe2da);background:var(--accent-soft);color:var(--text-primary);font-size:var(--text-sm);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 16px;padding:10px 14px;font-weight:600;display:flex}.updates-banner svg{color:var(--accent)}.updates-banner span{flex:1;min-width:180px}.updates-banner .button{align-items:center;gap:6px;min-height:34px;display:inline-flex}@media (max-width:860px){.home-header h1{font-size:24px}.update-group li a{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"badge time""title title""detail detail";gap:2px 10px;padding:10px 16px}.update-group li a .update-badge{grid-area:badge}.update-group li a time{grid-area:time}.update-group li a .update-number{display:none}.update-group li a .update-title{white-space:normal;grid-area:title}.update-group li a .update-detail{white-space:normal;grid-area:detail}.recent-list li a{grid-template-columns:auto minmax(0,1fr)}.recent-list .update-number,.recent-list .recent-project{display:none}.updates-banner .button{min-height:var(--touch)}}.upload-notify{color:var(--text-primary);font-size:var(--text-sm);flex-basis:100%;align-items:center;gap:8px;font-weight:600;display:flex}.upload-notify input{width:18px;height:18px;accent-color:var(--accent)}.bulk-cell{width:36px;padding-right:0!important}.bulk-check{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;margin:0}.bulk-bar{z-index:60;color:#fff;background:#17241f;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;max-width:calc(100% - 32px);padding:8px 8px 8px 16px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 18px 40px #101c1859}.bulk-bar strong{font-size:var(--text-sm);white-space:nowrap;margin-right:6px}.bulk-bar button,.bulk-bar select{color:#fff;min-height:36px;font:inherit;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff2e;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.bulk-bar select option{color:var(--text-primary)}.bulk-bar button:hover:not(:disabled){background:#ffffff24}.bulk-bar button.danger{color:#ffc9c2;border-color:#ff8c8273}.bulk-bar .bulk-clear{border-color:#0000;padding:0 8px}.row-menu{display:inline-flex}.row-menu-panel{border:1px solid var(--border);background:var(--surface);width:220px;box-shadow:var(--shadow-popover);border-radius:10px;margin:0;padding:6px;position:fixed;inset:auto}.row-menu-panel .admin-form{margin:0;display:block}.row-menu-panel .admin-form>.button,.row-menu-panel a{width:100%;min-height:38px;color:var(--text-primary);font:inherit;font-size:var(--text-sm);box-shadow:none;background:0 0;border:0;border-radius:6px;justify-content:flex-start;align-items:center;gap:8px;padding:0 10px;font-weight:500;text-decoration:none;display:flex}.row-menu-panel .admin-form>.button.danger{color:var(--danger,#b42318);background:0 0}.row-menu-panel .admin-form>.button:hover,.row-menu-panel a:hover{background:var(--surface-hover)}@media (max-width:860px){.bulk-bar{bottom:calc(72px + env(safe-area-inset-bottom));max-width:none;left:16px;right:16px;transform:none}.bulk-bar button,.bulk-bar select{min-height:var(--touch)}}.admin-overview h1{margin-bottom:2px}.admin-overview .page-lede{color:var(--text-secondary);margin:0 0 16px}.count-pill{background:var(--warning-soft);min-width:22px;height:22px;color:var(--warning-text);vertical-align:2px;border-radius:999px;place-items:center;margin-left:6px;padding:0 6px;font-size:12px;display:inline-grid}.attention-empty{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);border-radius:12px;align-items:center;gap:8px;margin:0;padding:14px 16px;display:flex}.attention-empty svg{color:var(--accent)}.attention-list{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.attention-list li{min-height:56px;font-size:var(--text-sm);grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 12px 8px 16px;display:grid}.attention-list li+li{border-top:1px solid var(--border)}.attention-list .button{white-space:nowrap;align-items:center;gap:6px;min-height:36px;display:inline-flex}.attention-icon{color:var(--text-secondary)}.attention-icon.warn{color:var(--warning)}.attention-actions{gap:8px;display:inline-flex}.button.danger-text{color:var(--danger,#b42318)}.overview-columns{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);align-items:start;gap:24px;display:grid}.activity-day h3{color:var(--text-secondary);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;margin:16px 0 8px;font-weight:700}.activity-day:first-of-type h3{margin-top:0}.activity-project{color:var(--text-secondary)}.overview-projects{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin:0;padding:0;list-style:none;display:grid}.overview-projects li{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px 10px 16px;display:grid}.overview-projects li+li{border-top:1px solid var(--border)}.overview-projects li>span{min-width:0;display:grid}.overview-projects li>span>span{color:var(--text-secondary);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overview-projects a{color:var(--text-primary);text-decoration:none}.overview-projects .button{min-height:34px}@media (max-width:1100px){.overview-columns{grid-template-columns:1fr}}@media (max-width:860px){.attention-list li{grid-template-columns:20px minmax(0,1fr)}.attention-list li>.button,.attention-list li>.attention-actions{grid-column:2;justify-self:start}.attention-list .button,.overview-projects .button{min-height:var(--touch)}}.access-matrix{gap:10px;display:grid}.access-project{border:1px solid var(--border);border-radius:10px;margin:0;padding:10px 12px 12px}.access-project.is-off{background:#f7f9f8}.access-project legend{font-weight:600;font-size:var(--text-sm);padding:0 4px}.access-controls{grid-template-columns:1fr 1fr;gap:10px;display:grid}.access-controls label{color:var(--text-secondary);font-size:var(--text-xs);gap:4px;font-weight:600;display:grid}.access-controls select{border:1px solid var(--control-border);border-radius:var(--radius-control);background:var(--surface);min-height:38px;color:var(--text-primary);font:inherit;font-size:var(--text-sm);padding:0 8px}.access-segments{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px 12px;margin-top:10px;display:grid}.access-save{background:var(--surface);align-items:center;gap:12px;padding:12px 0;display:flex;position:sticky;bottom:-24px}@media (max-width:520px){.access-controls{grid-template-columns:1fr}.access-controls select{min-height:var(--touch)}}.segmented{scrollbar-width:none;max-width:100%;overflow-x:auto}.admin-page-title+.segmented{margin:-4px 0 18px}@media (max-width:480px){.segmented a{padding:6px 10px;font-size:13px}}.activity-times{color:var(--text-secondary);font-size:var(--text-xs);font-weight:600}.access-segments .check-field{font-size:var(--text-sm);align-items:flex-start;gap:8px;display:flex}.access-segments .check-field input{width:16px;height:16px;accent-color:var(--accent);margin-top:2px}.results-bar .zip-download{align-items:center;gap:6px;min-height:36px;margin-left:auto;display:inline-flex}@media (max-width:860px){.results-bar .zip-download{min-height:var(--touch);margin-left:0}}.table-scroll,.segment-tabs{position:relative}@media (min-width:861px) and (max-width:1535px){.peek-layout.has-peek{display:block}.peek-scrim{z-index:70;background:#101c1847;display:block;position:fixed;inset:0}.peek-panel{z-index:71;border:0;border-left:1px solid var(--border);background:var(--surface);border-radius:0;width:min(420px,92vw);max-height:none;position:fixed;top:0;bottom:0;right:0;box-shadow:-18px 0 48px #101c182e}.has-peek .document-table .col-type,.has-peek .document-table .col-size,.has-peek .document-table .col-discipline{display:table-cell}.has-peek .document-table .view-label,.has-peek .document-table .download-label{clip:auto;width:auto;height:auto;position:static;overflow:visible}.has-peek .document-table th,.has-peek .document-table td{padding-left:12px;padding-right:12px}}@media (max-width:860px){.has-peek .document-table .col-type,.has-peek .document-table .col-size,.has-peek .document-table .col-discipline{display:block}.has-peek .document-table .view-label,.has-peek .document-table .download-label{clip:auto;width:auto;height:auto;position:static;overflow:visible}.responsive-table tr td{min-width:0}}@media (min-width:600px) and (max-width:860px){.project-detail .responsive-table tbody{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:860px){.app-main .button,.app-main .segmented a,.app-main .filter-toggle,.app-main .clear-filters,.app-main .table-actions a,.app-main .table-actions button,.app-main .admin-form>.button,.app-main .document-admin-actions .button,.app-main .document-admin-actions a,.app-main .user-actions .button{min-height:var(--touch);box-sizing:border-box}.app-main .table-actions a{align-items:center;display:inline-flex}.app-main input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),.app-main select{min-height:var(--touch);box-sizing:border-box}.document-table .document-open{min-height:var(--touch);align-items:center;display:inline-flex}.app-main .segmented a{align-items:center;display:inline-flex}.app-main .filters button.filter-toggle,.app-main .card-actions a,.app-main .update-group>header a{min-height:var(--touch);align-items:center;display:inline-flex}}.app-main>.project-detail:has(.has-peek){max-width:1760px}.has-peek .document-table{min-width:0}@media (min-width:2000px){.app-main>main,.app-main>.portal,.app-main>.main{max-width:1560px}}.users-table .user-actions{flex-wrap:nowrap}.users-table .user-actions .button,.document-admin-actions .button,.document-admin-actions a{white-space:nowrap}@media (min-width:861px){.users-table th:last-child{width:150px}}@media (min-width:861px) and (max-width:1199px){.users-table th:nth-child(5),.users-table td:nth-child(5){display:none}}.codes-table .document-admin-actions{flex-wrap:nowrap}@media (min-width:861px){.bulk-bar{max-width:calc(100% - 280px);left:calc(50% + 124px)}}.codes-table td.document-title{overflow-wrap:anywhere;max-width:260px}@media (min-width:861px){.codes-table{min-width:0}.codes-table th,.codes-table td{padding-left:10px;padding-right:10px}}@media (min-width:861px) and (max-width:1199px){.codes-table th:nth-child(2),.codes-table td:nth-child(2),.codes-table th:nth-child(4),.codes-table td:nth-child(4){display:none}.codes-table td.document-title{min-width:150px}}.viewer-backdrop{grid-template-columns:minmax(0,1fr)}.viewer-stage{position:relative}.viewer-loading{z-index:1;color:var(--text-secondary);font-size:var(--text-sm);pointer-events:none;place-content:center;justify-items:center;gap:14px;display:grid;position:absolute;inset:0}.pdf-page.is-pending{visibility:hidden}.spinner{border:3px solid #1f5f4c2e;border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}
.auth{--auth-paper:#fbfaf7;--auth-night:#14160f;--auth-gold:#ad9365;--auth-gold-ink:#6f5a37;--auth-on-dark:#f5f2ed;--auth-mono:"SFMono-Regular", ui-monospace, Menlo, "Roboto Mono", monospace;--auth-display:var(--font-display), "Cinzel", Didot, serif;--auth-ease:cubic-bezier(.16, 1, .3, 1);background:var(--auth-paper);min-height:100dvh;color:var(--text-primary);grid-template-columns:minmax(0,1.15fr) minmax(440px,1fr);display:grid}.auth-visual{isolation:isolate;box-sizing:border-box;background:var(--auth-night);height:100dvh;color:var(--auth-on-dark);flex-direction:column;justify-content:space-between;align-self:start;gap:32px;padding:clamp(28px,3.6vw,56px);display:flex;position:sticky;top:0;overflow:hidden}.auth-visual-image{z-index:-2;object-fit:cover;object-position:84% center;animation:auth-settle 2.4s var(--auth-ease) both}.auth-visual:after{z-index:-1;content:"";background:linear-gradient(#14160f9e 0%,#14160f14 26%,#14160f1a 48%,#14160fe0 100%);position:absolute;inset:0}.auth-visual-top{justify-content:space-between;align-items:center;gap:16px;display:flex}.auth-wordmark{color:#fff;font-family:var(--auth-display);letter-spacing:.16em;font-size:19px;font-weight:600;text-decoration:none}.auth-kicker{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--auth-on-dark);font-family:var(--auth-mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;background:#14160f47;border:1px solid #f5f2ed6b;border-radius:999px;padding:7px 12px;font-size:11px}.auth-visual-bottom{max-width:620px}.auth-statement{color:#fff;max-width:17ch;font-family:var(--auth-display);text-wrap:balance;margin:0 0 28px;font-size:clamp(30px,2.8vw,44px);font-weight:400;line-height:1.04}.auth-disciplines{color:#f5f2ede6;font-family:var(--auth-mono);letter-spacing:.1em;text-transform:uppercase;border-top:1px solid #ad9365bf;flex-wrap:wrap;gap:8px 20px;margin:0;padding:18px 0 0;font-size:11px;list-style:none;display:flex}.auth-caption{color:#f5f2edc7;align-items:center;gap:10px;margin:20px 0 0;font-size:12px;display:flex}.auth-caption:before{background:var(--auth-gold);content:"";border-radius:50%;width:6px;height:6px}.auth-panel{box-sizing:border-box;flex-direction:column;min-height:100dvh;padding:clamp(32px,5vw,72px) clamp(24px,5vw,80px) 28px;display:flex}.auth-card{width:100%;max-width:400px;animation:auth-rise .7s var(--auth-ease) both;margin:auto}.auth-eyebrow{color:var(--auth-gold-ink);font-family:var(--auth-mono);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:12px;margin:0 0 18px;font-size:12px;display:flex}.auth-eyebrow:before{background:var(--auth-gold);content:"";width:28px;height:1px}.auth h1{color:var(--text-primary);font-family:var(--auth-display);text-wrap:balance;margin:0 0 14px;font-size:clamp(32px,3vw,42px);font-weight:400;line-height:1.08}.auth-lead{color:var(--text-secondary);margin:0 0 32px;font-size:15px;line-height:1.55}.auth-lead strong{color:var(--text-primary);font-weight:600}.auth .form{gap:18px;max-width:none;margin:0}.auth .field{color:var(--text-primary);gap:8px;font-size:13px;font-weight:600}.auth .field input{box-sizing:border-box;border:1px solid var(--control-border);width:100%;height:48px;color:var(--text-primary);background:#fff;border-radius:8px;padding:0 14px;font-size:16px;transition:border-color .16s,box-shadow .16s}.auth .password-input input{padding-right:52px}.auth .field input:hover{border-color:var(--text-secondary)}.auth .field input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--focus);outline:none}.auth .form .field-hint{margin-top:-10px}.auth .code-input{font-family:var(--auth-mono);letter-spacing:.16em;text-transform:uppercase}.auth .code-input::placeholder{color:var(--text-muted);letter-spacing:.16em}.auth .button{border-radius:8px;gap:10px;width:100%;min-height:50px;font-size:15px;transition:background-color .16s,border-color .16s,color .16s}.auth .button:hover:not(:disabled){border-color:var(--accent-hover);background:var(--accent-hover)}.auth .button.secondary{border-color:var(--accent);color:var(--accent);background:0 0}.auth .button.secondary:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-hover)}.auth-primary svg{transition:transform .2s var(--auth-ease)}.auth-primary:hover svg{transform:translate(3px)}.auth-divider{color:var(--text-muted);font-family:var(--auth-mono);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:14px;margin:30px 0 22px;font-size:11px;display:flex}.auth-divider:before,.auth-divider:after{background:var(--border);content:"";flex:1;height:1px}.auth-inline-link{text-align:right;margin:-8px 0 0;font-size:14px}.auth-inline-link a,.auth-switch a{color:var(--accent);text-underline-offset:3px;font-weight:600}.auth-switch{border-top:1px solid var(--border);color:var(--text-secondary);text-align:center;margin:10px 0 0;padding-top:22px;font-size:14px}.auth-back{margin:24px 0 0}.auth-back a,.auth-text-button{min-height:var(--touch);color:var(--accent);background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.auth-back a:hover,.auth-text-button:hover{text-underline-offset:3px;text-decoration:underline}.auth-notice{margin:0 0 20px}.auth .form-success{max-width:none;margin:0}.auth-footer{border-top:1px solid var(--border);width:100%;max-width:400px;color:var(--text-secondary);flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin:48px auto 0;padding-top:20px;font-size:13px;display:flex}.auth-footer a{color:var(--text-secondary);font-family:var(--auth-mono);letter-spacing:.08em;text-transform:uppercase;font-size:12px;text-decoration:none}.auth-footer a:hover{color:var(--accent)}@keyframes auth-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes auth-settle{0%{transform:scale(1.06)}to{transform:scale(1)}}@media (max-width:959px){.auth{grid-template-rows:auto 1fr;grid-template-columns:1fr}.auth-visual{height:240px;padding:20px clamp(20px,5vw,40px);position:relative}.auth-visual-image{object-position:78% 40%}.auth-statement{max-width:22ch;margin:0;font-size:26px}.auth-disciplines,.auth-caption{display:none}.auth-panel{min-height:0;padding:40px clamp(20px,5vw,40px) 24px}.auth-card{margin:0 auto}}@media (max-width:559px){.auth-visual{height:152px;padding:18px 20px}.auth-visual:after{background:linear-gradient(#14160fb3 0%,#14160f26 55%,#14160f59 100%)}.auth-wordmark{letter-spacing:.1em;font-size:15px}.auth-kicker{letter-spacing:.1em;padding:5px 9px;font-size:10px}.auth-visual-bottom{display:none}.auth-panel{padding-top:32px}.auth h1{font-size:30px}.auth-lead{margin-bottom:26px}}@media (max-width:359px){.auth-kicker{display:none}}@media (prefers-reduced-motion:reduce){.auth-card,.auth-visual-image{animation:none}.auth-primary svg,.auth .button,.auth .field input{transition:none}}
