:root{--color-primary: #1a3f4a;--color-primary-hover: #14343d;--color-secondary: #3d5a63;--color-accent: #7bc4b2;--color-accent-strong: #2f8f7b;--color-bg: #f3efe8;--color-surface: #fffcf7;--color-border: #d9d2c6;--color-text: #1c2427;--color-text-muted: #5c6a6e;--color-success: #2f8f7b;--color-warning: #c4842a;--color-error: #a33b32;--color-info: #3d6a7a;--color-on-primary: #fffcf7;--color-tone-muted-bg: #ece7de;--color-tone-info-bg: #e4eef1;--color-tone-warning-bg: #f8edd8;--color-tone-success-bg: #e4f4ef;--color-tone-danger-bg: #f8e8e6;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-page: clamp(1rem, 2.5vw, 2rem);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--font-sans: "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;--font-serif: Georgia, "Times New Roman", serif;--font-size-h1: clamp(1.5rem, 2vw, 1.85rem);--font-size-h2: 1.125rem;--font-size-h3: 1rem;--font-size-body: .9375rem;--font-size-small: .8125rem;--font-size-caption: .75rem;--font-weight-body: 400;--font-weight-medium: 600;--line-height-body: 1.5;--line-height-heading: 1.25;--shadow-sm: 0 1px 2px rgb(26 63 74 / .06);--shadow-md: 0 8px 24px rgb(26 63 74 / .08);--focus-ring: 2px solid var(--color-primary);--focus-offset: 2px;--tap-min: 2.75rem;font-family:var(--font-sans);line-height:var(--line-height-body);font-size:var(--font-size-body);color:var(--color-text);background:var(--color-bg)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;overflow-x:hidden}#root{min-height:100dvh}h1,h2,h3{line-height:var(--line-height-heading);color:var(--color-text)}h1{font-size:var(--font-size-h1);font-weight:650;letter-spacing:-.02em}h2{font-size:var(--font-size-h2);font-weight:650}h3{font-size:var(--font-size-h3);font-weight:600}small,.small,.caption{font-size:var(--font-size-small);color:var(--color-text-muted)}.caption{font-size:var(--font-size-caption)}a{color:var(--color-primary)}:is(a,button,input,select,textarea,[tabindex]:not([tabindex="-1"])):focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.app-shell,.public-shell,.login-page{min-height:100dvh}.app-shell,.public-shell{display:flex;flex-direction:column}.app-header{position:sticky;top:0;z-index:20;display:flex;flex-direction:column;width:100%;gap:0;padding:0;padding-top:env(safe-area-inset-top,0);background:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-md)}.app-header-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-width:0;padding:var(--space-3) var(--space-page);padding-left:max(var(--space-page),env(safe-area-inset-left,0px));padding-right:max(var(--space-page),env(safe-area-inset-right,0px))}.app-brand{display:flex;flex-direction:column;gap:.1rem;min-width:0}.app-brand-name{font-weight:700;letter-spacing:.02em}.app-brand-mark{font-size:var(--font-size-caption);opacity:.78}.app-nav{display:flex;flex-wrap:nowrap;gap:var(--space-1);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 max(var(--space-page),env(safe-area-inset-left,0px)) var(--space-2);padding-right:max(var(--space-page),env(safe-area-inset-right,0px))}.app-nav::-webkit-scrollbar{display:none}.app-nav a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:var(--tap-min);padding:var(--space-2) var(--space-3);color:inherit;text-decoration:none;white-space:nowrap;border-radius:var(--radius-md)}.app-nav a:hover{background:#ffffff14}.app-nav a.active{background:#ffffff24;box-shadow:inset 0 -2px 0 var(--color-accent)}.app-session{display:flex;align-items:center;flex-shrink:0;gap:var(--space-2);font-size:var(--font-size-small)}.app-session-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem;min-width:0}.app-session-email{display:block;max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--font-weight-medium)}.app-session-role{opacity:.8}.app-session .button{min-height:var(--tap-min);color:var(--color-on-primary);border-color:#fffcf759}.app-session .button:hover:not(:disabled){background:#ffffff1a;border-color:#fffcf78c}.public-header{display:flex;flex-direction:column;align-items:flex-start;width:100%;gap:var(--space-1);padding:var(--space-4) var(--space-page);padding-top:max(var(--space-4),env(safe-area-inset-top,0px));padding-left:max(var(--space-page),env(safe-area-inset-left,0px));padding-right:max(var(--space-page),env(safe-area-inset-right,0px));background:var(--color-surface);color:var(--color-text);border-bottom:1px solid var(--color-border)}.public-brand{margin:0;font-weight:700;color:var(--color-primary);letter-spacing:.02em}.public-kicker{margin:0;max-width:40rem;font-size:var(--font-size-small);color:var(--color-text-muted)}.app-main,.public-main{flex:1;width:100%;max-width:none;min-width:0;padding:var(--space-5) var(--space-page) var(--space-6);padding-left:max(var(--space-page),env(safe-area-inset-left,0px));padding-right:max(var(--space-page),env(safe-area-inset-right,0px));padding-bottom:max(var(--space-6),env(safe-area-inset-bottom,0px))}.public-main h1{font-family:var(--font-serif);margin:0 0 var(--space-3)}.public-lead,.public-status-line{margin:0 0 var(--space-3);color:var(--color-text-muted)}.public-status-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);color:var(--color-text)}.login-page{display:grid;grid-template-columns:1fr;place-items:center;padding:max(var(--space-5),env(safe-area-inset-top,0px)) var(--space-page) max(var(--space-5),env(safe-area-inset-bottom,0px));background:var(--color-bg)}.login-aside{display:none}.login-form{display:flex;flex-direction:column;gap:var(--space-3);width:min(26rem,100%);padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.login-aside-lead{margin:0;font-size:1.25rem;color:#fffcf7c7}.login-brand{margin:0;font-weight:700;color:var(--color-primary);letter-spacing:.02em}.login-form h1{margin:0}.login-lead{margin:0;color:var(--color-text-muted);font-size:var(--font-size-small)}.login-form label{display:flex;flex-direction:column;gap:var(--space-1)}.login-form [role=alert]{color:var(--color-error);margin:0}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-5)}.page-header h1{margin:0}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4)}.dashboard-card{padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow .14s ease,transform .14s ease}.dashboard-card:hover{box-shadow:var(--shadow-md)}.dashboard-card h2{margin:0 0 var(--space-2)}.dashboard-card a{display:inline-flex;align-items:center;min-height:var(--tap-min);font-weight:var(--font-weight-medium)}.dashboard-count{margin:var(--space-2) 0 var(--space-4);font-size:clamp(2rem,4vw,2.5rem);font-weight:700;line-height:1.1;color:var(--color-primary)}.dashboard-hello{margin:var(--space-2) 0 0;color:var(--color-text-muted)}.dashboard-quick-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.dashboard-work{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-5);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.dashboard-work-header h2{margin:0 0 var(--space-1)}.dashboard-work-header p{margin:0;color:var(--color-text-muted)}.dashboard-work .workspace-summary{margin:0}.dashboard-work-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-2)}.dashboard-card-archive .dashboard-count{font-size:clamp(1.5rem,3vw,1.85rem);margin-bottom:var(--space-3)}.dashboard-work .document-review-frame{margin-top:var(--space-3)}.button,button{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap-min);padding:.55rem 1rem;font:inherit;font-weight:var(--font-weight-medium);line-height:1.2;text-decoration:none;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .12s ease}.button:hover:not(:disabled),button:hover:not(:disabled){background:var(--color-tone-muted-bg)}.button:active:not(:disabled),button:active:not(:disabled){transform:translateY(1px)}.button:disabled,button:disabled{opacity:.45;cursor:not-allowed}.button-primary,button.button-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.button-primary:hover:not(:disabled),button.button-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.button-secondary,button.button-secondary{background:var(--color-surface);border-color:var(--color-secondary);color:var(--color-primary)}.button-secondary:hover:not(:disabled),button.button-secondary:hover:not(:disabled){background:var(--color-tone-info-bg)}.button-ghost,button.button-ghost,a.button-ghost{background:transparent;border-color:transparent;color:var(--color-primary);padding-left:var(--space-2);padding-right:var(--space-2)}.button-ghost:hover:not(:disabled),button.button-ghost:hover:not(:disabled),a.button-ghost:hover:not(:disabled){background:var(--color-tone-muted-bg)}.button-destructive,button.button-destructive{background:var(--color-surface);border-color:var(--color-error);color:var(--color-error)}.button-destructive:hover:not(:disabled),button.button-destructive:hover:not(:disabled){background:var(--color-tone-danger-bg)}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.data-table{width:100%;min-width:36rem;border-collapse:collapse;background:transparent;border:0;border-radius:0}.data-table th,.data-table td{text-align:left;padding:.9rem var(--space-4);border-bottom:1px solid var(--color-border);vertical-align:top}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#1a3f4a08}.data-table th{position:sticky;top:0;font-size:var(--font-size-small);font-weight:var(--font-weight-medium);color:var(--color-text-muted);background:var(--color-tone-muted-bg)}.data-table td a{display:inline-flex;align-items:center;min-height:2.25rem;font-weight:var(--font-weight-medium)}.user-actions{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3)}.user-password-form{width:min(22rem,100%);margin:0;padding:var(--space-3)}.page-form{display:flex;flex-direction:column;gap:var(--space-3);width:min(36rem,100%);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.page-form label{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--font-size-small);font-weight:var(--font-weight-medium)}.page-form input,.page-form textarea,.page-form select,.login-form input{width:100%;min-height:var(--tap-min);padding:.65rem .75rem;font:inherit;font-size:1rem;font-weight:var(--font-weight-body);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.page-form textarea{min-height:6.5rem}.page-form input[type=file]{min-height:var(--tap-min);padding:.45rem}.prepared-section .page-header{margin-bottom:var(--space-3)}.page-form [role=alert],[role=alert]{color:var(--color-error);margin:0}.form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.detail-list{display:grid;gap:var(--space-3);max-width:48rem;padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.detail-list div{display:grid;grid-template-columns:minmax(7rem,9rem) minmax(0,1fr);gap:var(--space-2)}.detail-list dt{font-weight:var(--font-weight-medium);font-size:var(--font-size-small);color:var(--color-text-muted);margin:0}.detail-list dd{margin:0;overflow-wrap:anywhere}.prepared-section,.action-section{margin-top:var(--space-5);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.prepared-section h2,.action-section h2,.action-section h3{margin:0 0 var(--space-3)}.action-buttons{margin-top:var(--space-4)}.item-stack{display:grid;gap:var(--space-4)}.item-card,.document-card{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.item-card-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-2)}.item-card-header h3{margin:0}.item-upload-form,.reject-form{width:100%;margin-top:var(--space-3);padding:var(--space-4)}.document-detail{max-width:none;padding:0;border:none;background:transparent;box-shadow:none}.document-card .document-review-frame{margin-top:var(--space-3)}.review-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-3);margin-top:var(--space-3)}.page-form .checkbox-field{flex-direction:row;align-items:center;gap:var(--space-2);font-weight:var(--font-weight-body)}.page-form .checkbox-field input{width:1.15rem;min-height:1.15rem}.status-badge{display:inline-block;padding:.25rem .6rem;border-radius:999px;font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);letter-spacing:.01em;background:var(--color-tone-muted-bg);color:var(--color-secondary)}.status-tone-muted{background:var(--color-tone-muted-bg);color:var(--color-secondary)}.status-tone-info{background:var(--color-tone-info-bg);color:var(--color-info)}.status-tone-warning{background:var(--color-tone-warning-bg);color:var(--color-warning)}.status-tone-success{background:var(--color-tone-success-bg);color:var(--color-accent-strong)}.status-tone-danger{background:var(--color-tone-danger-bg);color:var(--color-error)}.form-success{margin:0;color:var(--color-success);font-size:var(--font-size-small)}.workspace{display:flex;flex-direction:column;gap:var(--space-5)}.workspace-back{align-self:flex-start;margin:0}.workspace-header{display:flex;flex-direction:column;gap:var(--space-2)}.workspace-header h1{margin:0}.workspace-reference{margin:0;font-size:var(--font-size-small);font-weight:var(--font-weight-medium);letter-spacing:.06em;text-transform:uppercase;color:var(--color-secondary)}.workspace-state{margin:0;font-size:var(--font-size-small);color:var(--color-text-muted)}.workspace-client{margin:0}.workspace-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.summary-card{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.summary-card h2,.summary-card h3{margin:0;font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.summary-card-value{margin:var(--space-2) 0 var(--space-1);font-size:clamp(1.5rem,3vw,1.85rem);font-weight:700;line-height:1.1;color:var(--color-primary)}.summary-card-hint{margin:0;font-size:var(--font-size-small);color:var(--color-text-muted)}.workspace-progress,.workspace-requests,.document-review{padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.workspace-progress h2,.workspace-requests h2,.workspace-requests h3,.document-review h2,.document-review h3{margin:0}.document-review-layout{display:grid;gap:var(--space-5);margin-top:var(--space-4)}.document-review-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2);align-content:start}.document-review-item{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);width:100%;margin:0;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-tone-muted-bg);color:inherit;font:inherit;text-align:left}button.document-review-item{cursor:pointer;min-height:var(--tap-min)}button.document-review-item:hover{border-color:var(--color-secondary)}.document-review-item.is-selected{border-color:var(--color-primary);background:var(--color-surface)}.document-review-item.is-unavailable{cursor:default}.document-review-item-label{font-weight:var(--font-weight-medium)}.document-review-item-meta{display:flex;flex-wrap:wrap;gap:var(--space-2)}.document-review-pane{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.document-review-pane-header{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.document-review-placeholder{margin:0;color:var(--color-text-muted)}.document-review-frame{width:100%;min-height:32rem;height:min(70vh,48rem);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-tone-muted-bg)}.document-review-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-3)}.document-review .action-section{margin-top:0}.progress-track{margin:var(--space-3) 0;height:.65rem;background:var(--color-tone-muted-bg);border-radius:999px;overflow:hidden}.progress-track-compact{margin:var(--space-2) 0 0;height:.4rem;max-width:18rem}.progress-fill{height:100%;background:var(--color-accent-strong);border-radius:999px}.progress-copy{margin:0 0 var(--space-1)}.request-stack{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-4)}.request-card{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-tone-muted-bg)}.request-card-body{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;flex:1}.request-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0;color:var(--color-text-muted);font-size:var(--font-size-small)}.request-card-progress{margin:0;font-size:var(--font-size-small)}.workspace-empty{display:flex;flex-direction:column;gap:var(--space-2)}.workspace-empty p{margin:0}.workspace-empty-lead{color:var(--color-text-muted)}@media(min-width:40rem){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:56rem){.dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace-summary{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr))}.document-review-layout{grid-template-columns:minmax(12rem,18rem) minmax(0,1fr);align-items:start}}@media(min-width:56rem){.login-page{grid-template-columns:minmax(18rem,1fr) minmax(22rem,1fr);place-items:stretch;padding:0;background:var(--color-primary)}.login-aside{display:flex;flex-direction:column;justify-content:flex-end;gap:var(--space-3);padding:var(--space-6);padding-left:max(var(--space-6),env(safe-area-inset-left,0px));background:radial-gradient(720px 320px at 20% 0%,rgb(123 196 178 / .28),transparent 60%),var(--color-primary);color:var(--color-on-primary)}.login-aside .login-brand{color:var(--color-on-primary);font-size:clamp(2rem,4vw,3rem)}.login-form{align-self:center;justify-self:center;width:min(26rem,calc(100% - 3rem))}.login-form>.login-brand{display:none}}@media(min-width:64rem){.app-header{flex-direction:row;align-items:center;padding-left:max(var(--space-6),env(safe-area-inset-left,0px));padding-right:max(var(--space-6),env(safe-area-inset-right,0px))}.app-header-bar{padding:var(--space-3) 0;padding-right:var(--space-4)}.app-nav{flex:1;flex-wrap:wrap;overflow:visible;padding:0}.app-main,.public-main{padding-left:max(var(--space-6),env(safe-area-inset-left,0px));padding-right:max(var(--space-6),env(safe-area-inset-right,0px))}}@media(max-width:40rem){.page-header{align-items:stretch;flex-direction:column}.page-header .button,.page-header a.button{width:100%}.detail-list div{grid-template-columns:1fr}.form-actions,.action-buttons,.review-actions,.form-actions .button,.form-actions a.button,.action-buttons .button,.action-buttons a.button,.review-actions .button{width:100%}.workspace-summary{grid-template-columns:1fr}.request-card{flex-direction:column}.request-card .button{width:100%}.login-page{place-items:stretch;align-content:start;background:var(--color-surface)}.login-form{width:100%;padding:var(--space-4) 0;border:0;border-radius:0;box-shadow:none}.prepared-section,.action-section,.workspace-progress,.workspace-requests,.document-review,.dashboard-work,.page-form,.detail-list{padding:var(--space-4)}.document-review-actions,.document-review-actions .button{width:100%}.document-review-frame{min-height:20rem}.item-upload-form,.reject-form{padding:var(--space-3) 0 0;border:0;box-shadow:none}}
