:root{--color-bg:#f6f7f9;--color-bg-soft:#eef0f3;--color-bg-card:#fff;--color-bg-inverted:#0f172a;--color-text:#0f172a;--color-text-secondary:#475569;--color-text-muted:#64748b;--color-text-inverted:#f8fafc;--color-accent:#1d4ed8;--color-accent-soft:#dbeafe;--color-accent-deep:#1e3a8a;--color-success:#059669;--color-success-soft:#d1fae5;--color-info:#2563eb;--color-info-soft:#dbeafe;--color-warning:#b45309;--color-warning-soft:#fef3c7;--color-neutral:#6b7280;--color-neutral-soft:#e5e7eb;--color-danger:#b91c1c;--color-danger-soft:#fee2e2;--color-border:#0f172a17;--color-border-strong:#0f172a2e;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-lg:1.0625rem;--text-xl:1.25rem;--text-2xl:1.6rem;--font-display:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-body:"Inter", ui-sans-serif, system-ui, sans-serif;--sidebar-width:15rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--shadow-sm:0 1px 0 #0f172a0a, 0 2px 8px -4px #0f172a1a;--shadow-md:0 4px 16px -8px #0f172a1f, 0 12px 32px -16px #0f172a1f}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);-webkit-font-smoothing:antialiased;margin:0;line-height:1.55;overflow-x:hidden}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:3px}a{color:inherit;text-decoration:none}button{font-family:inherit}h1,h2,h3{font-family:var(--font-display);margin:0}.app-shell{grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh;display:grid}@media (max-width:860px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}}.sidebar{background:var(--color-bg-inverted);color:var(--color-text-inverted);flex-direction:column;gap:1.5rem;height:100vh;padding:1.25rem 1rem;display:flex;position:sticky;top:0}.sidebar__brand{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);align-items:center;gap:.6rem;display:flex}.sidebar__brand-mark{border-radius:var(--radius-sm);background:var(--color-accent);flex-shrink:0;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;font-size:.8rem;font-weight:700;display:inline-flex}.sidebar__nav{flex-direction:column;gap:.15rem;display:flex}.nav-link{border-radius:var(--radius-md);color:#f8fafcbf;font-size:var(--text-sm);padding:.6rem .75rem;font-weight:500}.nav-link:hover{color:var(--color-text-inverted);background:#f8fafc14}.nav-link[aria-current=page]{color:var(--color-text-inverted);background:#1d4ed859}.sidebar__user{border-top:1px solid #f8fafc1a;align-items:center;gap:.5rem;margin-top:auto;padding-top:.75rem;display:flex}.sidebar__user-name{font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar__signout{color:#f8fafcb3;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:.25rem .4rem;font-size:1rem}.sidebar__signout:hover{color:var(--color-text-inverted);background:#f8fafc14}.mobile-topbar{display:none}@media (max-width:860px){.mobile-topbar{background:var(--color-bg-inverted);color:var(--color-text-inverted);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.mobile-topbar .sidebar__brand{font-size:var(--text-base)}}.mobile-topbar__menu-btn{color:var(--color-text-inverted);cursor:pointer;background:0 0;border:none;padding:.25rem .5rem;font-size:1.1rem}.mobile-drawer-backdrop{z-index:40;background:#0f172a73;border:none;position:fixed;inset:0}.mobile-drawer{background:var(--color-bg-inverted);color:var(--color-text-inverted);z-index:41;flex-direction:column;gap:.35rem;padding:1rem;display:flex;position:fixed;top:0;left:0;right:0}.mobile-drawer__link{border-radius:var(--radius-md);padding:.6rem .5rem}.mobile-drawer__user{border-top:1px solid #f8fafc1a;align-items:center;gap:.5rem;padding-top:.5rem;display:flex}.mobile-drawer__signout{color:var(--color-text-inverted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #f8fafc4d;margin-left:auto;padding:.3rem .6rem}.app-main{min-width:0}.app-content{max-width:74rem;margin:0 auto;padding:1.75rem 2rem}@media (max-width:640px){.app-content{padding:1rem}}.eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin:0 0 .25rem;font-weight:600}.stack{flex-direction:column;display:flex}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-3{gap:1.5rem}.row{align-items:center;gap:.5rem;display:flex}.row--wrap{flex-wrap:wrap}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.5rem}.card__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem;display:flex}.card__title{font-family:var(--font-display);font-size:var(--text-xl);margin:0;font-weight:700}.card__subtitle{color:var(--color-text-muted);font-size:var(--text-sm);margin:.15rem 0 0}.link-back{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500}.link-back:hover{color:var(--color-accent)}.link-cta{color:var(--color-accent);font-weight:500}.link-cta:hover{text-decoration:underline}.row-link{color:var(--color-text);font-weight:600}.row-link:hover{color:var(--color-accent)}.btn{border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.4rem;padding:.6rem 1.1rem;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--color-accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-accent-deep)}.btn--ghost{border-color:var(--color-border-strong);color:var(--color-text);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--color-bg-soft)}.btn--danger{background:var(--color-danger);color:#fff}.btn--danger:hover:not(:disabled){background:#991616}.btn--small{font-size:var(--text-xs);padding:.4rem .75rem}.btn--full{width:100%}.icon-btn{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:.35rem;display:inline-flex}.icon-btn:hover{color:var(--color-danger);background:var(--color-danger-soft)}.field{flex-direction:column;gap:.3rem;display:flex}.field-label{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:600}.field-input,.field-select,.field-textarea{font:inherit;border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-bg-card);color:var(--color-text);width:100%;padding:.6rem .75rem}.field-textarea{resize:vertical;min-height:5rem}.field-input:focus,.field-select:focus,.field-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.field-hint{font-size:var(--text-xs);color:var(--color-text-muted)}.field-error{font-size:var(--text-xs);color:var(--color-danger)}.checkbox-row{font-size:var(--text-sm);align-items:center;gap:.5rem;display:flex}.checkbox-grid{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.5rem 1rem;display:grid}.banner{border-radius:var(--radius-md);font-size:var(--text-sm);border:1px solid #0000;padding:.75rem 1rem}.banner--danger{background:var(--color-danger-soft);color:var(--color-danger);border-color:#b91c1c33}.banner--success{background:var(--color-success-soft);color:var(--color-success);border-color:#05966933}.banner--info{background:var(--color-info-soft);color:var(--color-info);border-color:#2563eb33}.status-badge{font-size:var(--text-xs);white-space:nowrap;border-radius:999px;align-items:center;padding:.2rem .6rem;font-weight:600;display:inline-flex}.status-badge--PENDING{background:var(--color-neutral-soft);color:var(--color-neutral)}.status-badge--IN_PROGRESS,.status-badge--SUBMITTED{background:var(--color-info-soft);color:var(--color-info)}.status-badge--UNDER_REVIEW{background:var(--color-warning-soft);color:var(--color-warning)}.status-badge--COMPLETED,.status-badge--APPROVED{background:var(--color-success-soft);color:var(--color-success)}.status-badge--UPLOADED{background:var(--color-info-soft);color:var(--color-info)}.status-badge--EXPIRED{background:var(--color-neutral-soft);color:var(--color-neutral)}.status-badge--REVOKED,.status-badge--REJECTED{background:var(--color-danger-soft);color:var(--color-danger)}.badge--adhoc{font-size:var(--text-xs);background:var(--color-accent-soft);color:var(--color-accent-deep);border-radius:999px;align-items:center;padding:.15rem .5rem;font-weight:600;display:inline-flex}.process-tag{font-size:var(--text-xs);background:var(--color-neutral-soft);color:var(--color-text-secondary);vertical-align:middle;white-space:nowrap;border-radius:999px;align-items:center;margin-left:.4rem;padding:.05rem .45rem;font-weight:600;display:inline-flex}.audit-intro{font-size:var(--text-base);color:var(--color-text-secondary);margin:.35rem 0 0}.audit-table{font-size:var(--text-base)}.audit-table th{font-size:var(--text-sm);text-transform:none;letter-spacing:0;color:var(--color-text-secondary)}.audit-table td{vertical-align:top;padding-top:.8rem;padding-bottom:.8rem}.audit-table__when{white-space:nowrap}.audit-table__when span{display:block}.audit-table__time,.audit-table__sub{font-size:var(--text-sm);color:var(--color-text-secondary)}.audit-table__action{color:var(--color-text);flex-wrap:wrap;align-items:center;gap:.4rem .5rem;font-weight:600;display:flex}.audit-table__actor{white-space:nowrap}.audit-kind{font-size:var(--text-xs);white-space:nowrap;border-radius:999px;padding:.1rem .5rem;font-weight:700;display:inline-flex}.audit-kind--requests{background:var(--color-accent-soft);color:var(--color-accent-deep)}.audit-kind--documents{background:var(--color-success-soft);color:var(--color-success)}.audit-kind--sharing{background:var(--color-warning-soft);color:var(--color-warning)}.audit-kind--access{background:var(--color-info-soft);color:var(--color-info)}.audit-kind--admin{background:var(--color-neutral-soft);color:var(--color-text-secondary)}.share-card{border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:1.1rem 1.25rem}.share-card+.share-card{margin-top:1rem}.share-card__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 1rem;display:flex}.share-card__email{font-size:var(--text-lg);color:var(--color-text);overflow-wrap:anywhere;font-weight:700}.share-card__meta{font-size:var(--text-base);color:var(--color-text-secondary);margin:.3rem 0 0}.share-card__opened{font-size:var(--text-base);color:var(--color-text);margin:.2rem 0 0;font-weight:600}.share-card__opened--no{color:var(--color-warning)}.share-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0;display:grid}.share-stat{border-radius:var(--radius-md);flex-direction:column;gap:.15rem;padding:.75rem .9rem;display:flex}.share-stat__value{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;line-height:1.1}.share-stat__of{font-size:var(--text-base);opacity:.75;font-weight:600}.share-stat__label{font-size:var(--text-base);color:var(--color-text-secondary);font-weight:600}.share-stat--viewed{background:var(--color-info-soft);color:var(--color-info)}.share-stat--downloaded{background:var(--color-success-soft);color:var(--color-success)}.share-stat--untouched{background:var(--color-warning-soft);color:var(--color-warning)}.share-stat--done{background:var(--color-bg-soft);color:var(--color-text-secondary)}.share-docs{border-collapse:collapse;width:100%;font-size:var(--text-base)}.share-docs th{text-align:left;font-size:var(--text-sm);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border-strong);padding:.5rem .75rem .5rem 0;font-weight:600}.share-docs td{border-bottom:1px solid var(--color-border);vertical-align:top;padding:.75rem .75rem .75rem 0}.share-docs tr:last-child td{border-bottom:none}.share-docs__name{color:var(--color-text);font-weight:600}.share-state{font-size:var(--text-sm);white-space:nowrap;border-radius:999px;align-items:center;padding:.25rem .7rem;font-weight:700;display:inline-flex}.share-state--viewed{background:var(--color-info-soft);color:var(--color-info)}.share-state--downloaded{background:var(--color-success-soft);color:var(--color-success)}.share-state--no{background:var(--color-neutral-soft);color:var(--color-text-secondary)}.share-state__time{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:.3rem;display:block}@media (max-width:640px){.share-stats{grid-template-columns:1fr;gap:.5rem}.share-stat{flex-direction:row;justify-content:space-between;align-items:baseline;padding:.55rem .8rem}.share-stat__value{font-size:var(--text-xl);order:2}.share-docs thead{display:none}.share-docs tr{border-bottom:1px solid var(--color-border);padding:.6rem 0;display:block}.share-docs tr:last-child{border-bottom:none}.share-docs td{border-bottom:none;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.2rem 0;display:flex}.share-docs td:not(.share-docs__name):before{content:attr(data-label);min-width:6.5rem;font-size:var(--text-sm);color:var(--color-text-secondary)}.share-state__time{margin-top:0;display:inline}}.data-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.data-table th{text-align:left;color:var(--color-text-muted);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border);padding:.5rem .75rem}.data-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:.7rem .75rem}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--color-bg-soft)}.empty-state{text-align:center;color:var(--color-text-muted);padding:2.5rem 1rem}.detail-grid{grid-template-columns:2fr 1fr;align-items:start;gap:1.5rem;display:grid}@media (max-width:900px){.detail-grid{grid-template-columns:1fr}}.meta-list{font-size:var(--text-sm);grid-template-columns:auto 1fr;gap:.4rem 1rem;margin:.75rem 0 0;display:grid}.meta-list__row{display:contents}.meta-list dt{color:var(--color-text-muted)}.meta-list dd{margin:0}.timeline{flex-direction:column;gap:.85rem;display:flex;position:relative}.timeline-item{border-left:2px solid var(--color-border-strong);padding-left:.9rem}.timeline-item__label{font-weight:600;font-size:var(--text-sm)}.timeline-item__meta{color:var(--color-text-muted);font-size:var(--text-xs);margin-top:.1rem}.page-loading{justify-content:center;align-items:center;padding:4rem 1rem;display:flex}.spinner-row{color:var(--color-text-muted);font-size:var(--text-sm);align-items:center;gap:.5rem;display:inline-flex}.spinner{border:2px solid var(--color-border-strong);border-top-color:var(--color-accent);border-radius:50%;width:1rem;height:1rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.modal-overlay{z-index:50;background:#0f172a80;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-panel{background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-height:90vh;overflow-y:auto}.login-shell{grid-template-columns:1.1fr 1fr;min-height:100vh;display:grid}@media (max-width:900px){.login-shell{grid-template-columns:1fr}.login-shell__hero{display:none}}.login-shell__hero{background:var(--color-bg-inverted);color:var(--color-text-inverted);flex-direction:column;justify-content:space-between;gap:2rem;padding:3rem;display:flex}.login-shell__brand{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);align-items:center;gap:.6rem;display:flex}.login-shell__headline{margin:.5rem 0 1rem;font-size:2rem}.login-shell__subhead{color:#f8fafcbf;max-width:28rem;line-height:1.6}.login-shell__footnote{color:#f8fafc80;font-size:var(--text-xs)}.login-shell__form-side{justify-content:center;align-items:center;padding:2rem;display:flex}.login-shell__form-card{width:100%;max-width:24rem}.login-shell__form-title{font-size:var(--text-2xl);margin:.25rem 0}.login-shell__form-sub{color:var(--color-text-muted);font-size:var(--text-sm);margin:0 0 1.25rem}.login-form{flex-direction:column;gap:1rem;display:flex}.employee-shell{justify-content:center;min-height:100vh;padding:2rem 1rem 4rem;display:flex}.employee-shell__inner{flex-direction:column;gap:1.25rem;width:100%;max-width:40rem;display:flex}.employee-header{text-align:center;padding:1rem 0 .5rem}.employee-header h1{font-size:var(--text-2xl)}.employee-header p{color:var(--color-text-muted);margin:.35rem 0 0}.requirement-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-card);box-shadow:var(--shadow-sm);flex-direction:column;gap:.6rem;padding:1rem 1.15rem;display:flex}.requirement-card__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.requirement-card__title{font-weight:600;font-size:var(--text-base);flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.requirement-card__filename{font-size:var(--text-xs);color:var(--color-text-muted);overflow-wrap:anywhere}.file-drop{border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-md);text-align:center;font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;background:var(--color-bg-soft);padding:.9rem}.file-drop:hover{border-color:var(--color-accent);color:var(--color-accent)}.file-drop input[type=file]{display:none}.add-doc-btn{border:1.5px dashed var(--color-border-strong);color:var(--color-text-secondary);border-radius:var(--radius-lg);cursor:pointer;background:0 0;align-self:center;padding:.85rem 1.5rem;font-weight:600}.add-doc-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.file-picker,.photo-preview{flex-direction:column;gap:.6rem;display:flex}.file-picker input[type=file],.photo-preview input[type=file]{display:none}.file-picker__actions{flex-wrap:wrap;gap:.6rem;display:flex}.file-picker__camera,.file-picker__choose{flex:10rem;justify-content:center;align-items:center;min-height:2.9rem;display:flex}.file-drop--busy{cursor:default}.photo-tips{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-soft);flex-direction:column;gap:.6rem;padding:.85rem 1rem;display:flex}.photo-tips__title{font-weight:600;font-size:var(--text-sm);margin:0}.photo-tips__list{font-size:var(--text-sm);color:var(--color-text-secondary);gap:.25rem;margin:0;padding-left:1.1rem;display:grid}.photo-tips__open{justify-content:center;align-self:stretch;min-height:2.9rem}.photo-preview__image{object-fit:contain;border-radius:var(--radius-md);background:#000;width:100%;max-height:18rem;display:block}.photo-preview__actions{gap:.6rem;display:flex}.photo-preview__actions>*{flex:1;justify-content:center;min-height:2.9rem}.count-tile{text-align:left;font:inherit;color:inherit;cursor:pointer;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.9rem 1rem;transition:border-color .12s,box-shadow .12s;display:flex}.count-tile:hover{border-color:var(--color-border-strong)}.count-tile--active{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.count-tile__value{font-size:1.5rem;font-weight:700;line-height:1.2}.filter-bar{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:1rem;display:flex}.filter-chip{border:1px solid var(--color-border);font-size:var(--text-sm);cursor:pointer;background:var(--color-bg-card);border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .7rem;display:inline-flex}.filter-chip:has(input:checked){border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-deep)}.filter-date{font-size:var(--text-sm);color:var(--color-text-secondary);align-items:center;gap:.4rem;display:inline-flex}.filter-date .field-input{width:auto;padding-top:.3rem;padding-bottom:.3rem}.reject-reasons{border:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem 1rem;margin:0;padding:0;display:grid}.reject-reasons legend{margin-bottom:.4rem}.reject-reasons__option{font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:.5rem;padding:.45rem .6rem;display:flex}.reject-reasons__option:has(input:checked){border-color:var(--color-danger);background:var(--color-danger-soft)}
