:root{--ink: #1a1a1a;--ink-light: #4a4a4a;--ink-lighter: #7a7a7a;--ink-faint: #b0b0b0;--bg: #fffff8;--bg-warm: #fafaf2;--accent: #8b0000;--accent-mid: #b85450;--rule: #e0ddd4;--rule-strong: #c8c4b8;--sidebar-bg: #f5f4ee;--font-body: "Crimson Pro", Georgia, serif;--font-ui: "Source Sans 3", "Source Sans Pro", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--success: #2d6a2e;--success-bg: #f0f8f0;--error: #8b0000;--error-bg: #fdf2f2}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background:#d8d6cf;color:var(--ink);line-height:1.6;min-height:100vh}.app-shell{min-height:100vh;display:flex;flex-direction:column}.masthead{background:var(--ink);padding:.9rem 1.5rem;position:relative;box-shadow:0 2px 12px #00000026}.masthead-inner{max-width:720px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.masthead-title{font-family:var(--font-ui);font-size:.625rem;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;color:#ffffff80;line-height:1.2}.masthead-subtitle{font-family:var(--font-body);font-size:1.35rem;color:#ffffffd9;margin-top:.1rem;font-weight:300;letter-spacing:-.3px}[data-portal=triage] .masthead-subtitle,[data-portal=triage] .login-keyword{color:#8b1a1a}[data-portal=works] .masthead{background:#fff;box-shadow:0 1px 4px #0000000f}[data-portal=works] .masthead-title{color:var(--ink)}[data-portal=works] .masthead-subtitle,[data-portal=works] .login-keyword{color:#5c7085}[data-portal=works] .masthead-user{color:var(--ink-lighter)}[data-portal=works] .btn-logout{color:var(--ink-lighter);border-color:var(--rule);background:none}[data-portal=works] .btn-logout:hover{color:var(--ink);border-color:var(--ink-light);background:#0000000a}.masthead-right{display:flex;align-items:center;gap:.75rem}.masthead-user{font-family:var(--font-ui);font-size:.8rem;color:#ffffff80}.btn-logout{font-size:.65rem;padding:.3rem .6rem;color:#ffffff80;border-color:#fff3;background:none}.btn-logout:hover{color:#fff;border-color:#ffffff80;background:#ffffff14}.main-content{flex:1;max-width:720px;width:100%;margin:0 auto;padding:1.5rem .75rem 2.5rem}.btn{font-family:var(--font-ui);font-size:.72rem;font-weight:600;letter-spacing:.8px;text-transform:uppercase;padding:.5rem 1rem;border:1px solid var(--rule-strong);border-radius:0;background:var(--bg);color:var(--ink-light);cursor:pointer;transition:background .15s,border-color .15s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.btn:hover{background:var(--sidebar-bg)}.btn-primary{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn-primary:hover{background:var(--ink-light)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:disabled:hover{background:var(--bg)}.btn-primary:disabled:hover{background:var(--ink)}.btn-back{background:transparent;border-color:var(--rule);color:var(--ink-lighter)}.btn-back:hover{background:var(--sidebar-bg)}.btn-full{width:100%}.login-container{max-width:380px;margin:2rem auto 0;background:var(--bg);padding:2.25rem 2.5rem 2.5rem;border-top:3px solid var(--ink);box-shadow:0 1px 4px #0000000f,0 8px 32px #00000014;position:relative}.login-heading{font-family:var(--font-body);font-size:1.55rem;font-weight:300;color:var(--ink);margin-bottom:.05rem;letter-spacing:-.3px;line-height:1.2}.login-rule{width:100%;height:0;border:none;border-top:2px solid var(--ink);margin:.7rem 0 .15rem;position:relative}.login-rule:after{content:"";position:absolute;bottom:-3.5px;left:0;right:0;height:.5px;background:var(--ink)}.login-subtext{font-family:var(--font-body);font-size:.875rem;font-style:italic;color:var(--ink-lighter);margin-bottom:1.5rem;line-height:1.55}.login-keyword{font-style:normal;font-variant:small-caps;letter-spacing:.05em;color:var(--accent)}.login-form{display:flex;flex-direction:column;gap:1rem}.login-form .form-field label{font-family:var(--font-ui);font-size:.6rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--ink-lighter);font-variant:normal}.login-form .btn-primary{margin-top:.75rem;padding:.65rem 1rem;font-size:.75rem;font-weight:500;letter-spacing:.8px;background:var(--ink);border-color:var(--ink);border-radius:2px;transition:all .2s}.login-form .btn-primary:hover{background:var(--ink-light)}.form-field{display:flex;flex-direction:column;gap:.3rem}.form-field label{font-family:var(--font-ui);font-size:.72rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-lighter);display:flex;align-items:center;gap:.4rem}.form-field input,.form-field select,.form-field textarea{font-family:var(--font-body);font-size:1rem;color:var(--ink);background:#fff;border:1px solid var(--rule);padding:.5rem .6rem;outline:none;transition:border-color .15s;width:100%}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--ink)}.form-field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='%237a7a7a' stroke-width='1.2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;padding-right:1.8rem;cursor:pointer}.form-field textarea{border:1px solid var(--rule);border-radius:0;padding:.5rem;resize:vertical;min-height:4rem}.form-field textarea:focus{border-color:var(--ink)}.form-error{font-family:var(--font-ui);font-size:.82rem;color:var(--error);background:var(--error-bg);border:1px solid #e8c4c4;padding:.6rem .8rem;margin-bottom:.5rem}.form-error--blocking{border:2px solid var(--error);padding:1rem;margin-bottom:1rem}.form-error--blocking strong{display:block;font-size:.9rem;margin-bottom:.4rem}.form-error--blocking p{margin:.3rem 0;font-size:.82rem;line-height:1.4}.form-error--blocking a{color:var(--error);text-decoration:underline}.required-mark{color:var(--error);margin-left:2px;font-weight:600}.field-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--rule);flex-shrink:0}.field-dot--ai{background:var(--success)}.field-dot--empty{background:var(--rule)}.progress-bar{display:flex;align-items:flex-start;justify-content:center;gap:0;margin-bottom:2rem;position:relative}.progress-step{display:flex;flex-direction:column;align-items:center;gap:.35rem;position:relative;flex:1;max-width:120px}.progress-step:before{content:"";position:absolute;top:12px;left:calc(-50% + 12px);right:calc(50% + 12px);height:1px;background:var(--rule)}.progress-step:first-child:before{display:none}.progress-step--done:before{background:var(--ink)}.progress-step--active:before{background:var(--ink)}.progress-dot{width:24px;height:24px;border-radius:50%;border:1px solid var(--rule-strong);background:var(--bg);display:flex;align-items:center;justify-content:center;font-family:var(--font-ui);font-size:.65rem;font-weight:600;color:var(--ink-faint);position:relative;z-index:1;transition:all .2s}.progress-step--active .progress-dot{border-color:var(--ink);color:var(--ink)}.progress-step--done .progress-dot{background:var(--ink);border-color:var(--ink);color:var(--bg)}.progress-label{font-family:var(--font-ui);font-size:.65rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-faint)}.progress-step--active .progress-label{color:var(--ink)}.progress-step--done .progress-label{color:var(--ink-lighter)}.step-heading{font-family:var(--font-body);font-size:1.4rem;font-weight:600;color:var(--ink);margin-bottom:.3rem}.step-subtext{font-family:var(--font-ui);font-size:.85rem;color:var(--ink-lighter);margin-bottom:1.5rem;line-height:1.5}.step-actions{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--rule)}.card-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.card-grid--sub{margin-bottom:0}.type-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:1.25rem;border:1px solid var(--rule);background:var(--bg);cursor:pointer;transition:border-color .15s,background .15s;font-family:inherit;border-radius:0}.type-card:hover{border-color:var(--rule-strong);background:var(--bg-warm)}.type-card--selected{border-color:var(--ink);background:var(--bg-warm)}.type-card--sub{padding:1rem}.type-card-title{font-family:var(--font-body);font-size:1.1rem;font-weight:600;color:var(--ink);margin-bottom:.15rem}.type-card-label{font-family:var(--font-ui);font-size:.65rem;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--ink-lighter);margin-bottom:.6rem}.type-card-desc{font-family:var(--font-ui);font-size:.82rem;color:var(--ink-lighter);line-height:1.45}.sub-choice{margin-top:.5rem;margin-bottom:1rem}.sub-choice-prompt{font-family:var(--font-ui);font-size:.82rem;color:var(--ink-lighter);margin-bottom:.75rem}.upload-zones{display:flex;flex-direction:column;gap:1.25rem}.upload-zone-wrapper{display:flex;flex-direction:column;gap:.4rem}.upload-zone-header{display:flex;align-items:baseline;gap:.5rem}.upload-zone-label{font-family:var(--font-ui);font-size:.72rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-light)}.upload-zone-req{font-family:var(--font-ui);font-size:.68rem;color:var(--ink-faint)}.upload-zone-req--required{color:var(--ink-lighter)}.upload-zone{border:1.5px dashed var(--rule-strong);padding:1.25rem;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;position:relative}.upload-zone:hover{border-color:var(--ink-faint);background:var(--bg-warm)}.upload-zone--dragover{border-color:var(--ink);background:var(--sidebar-bg)}.upload-zone--uploading{border-color:var(--ink-faint);background:var(--bg-warm);cursor:wait}.upload-zone-input{display:none}.upload-zone-prompt{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--ink-lighter);font-family:var(--font-ui);font-size:.82rem}.upload-icon{color:var(--ink-faint)}.upload-zone-status{display:flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-ui);font-size:.82rem;color:var(--ink-lighter)}.upload-zone-error{font-family:var(--font-ui);font-size:.78rem;color:var(--error)}.file-list{list-style:none;display:flex;flex-direction:column;gap:.25rem}.file-list-item{display:flex;align-items:center;justify-content:space-between;padding:.35rem .5rem;background:var(--sidebar-bg);font-family:var(--font-ui);font-size:.78rem}.file-list-name{color:var(--ink-light);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.file-list-size{color:var(--ink-faint);font-family:var(--font-mono);font-size:.7rem;flex-shrink:0;margin-left:.75rem}.review-fields{display:flex;flex-direction:column;gap:1rem}.step-review--loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:1rem}.loading-text{font-family:var(--font-body);font-size:1.1rem;color:var(--ink)}.loading-subtext{font-family:var(--font-ui);font-size:.82rem;color:var(--ink-lighter)}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.cal-nav-label{font-family:var(--font-ui);font-size:.85rem;font-weight:600;color:var(--ink)}.cal-loading{display:flex;align-items:center;justify-content:center;min-height:200px}.cal-grid-wrapper{overflow-x:auto;margin-bottom:1rem;border:1px solid var(--rule)}.cal-grid{display:grid;min-width:480px}.cal-header{display:flex;flex-direction:column;align-items:center;padding:.5rem .25rem;border-bottom:1px solid var(--rule);background:var(--sidebar-bg)}.cal-time-col{background:var(--sidebar-bg)}.cal-day-name{font-family:var(--font-ui);font-size:.65rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-lighter)}.cal-day-num{font-family:var(--font-ui);font-size:.85rem;font-weight:600;color:var(--ink)}.cal-time-cell{font-family:var(--font-ui);font-size:.65rem;color:var(--ink-faint);padding:0 .3rem;display:flex;align-items:flex-start;justify-content:flex-end;border-right:1px solid var(--rule);min-height:20px;background:var(--sidebar-bg)}.cal-slot{min-height:20px;border-bottom:1px solid var(--rule);border-right:1px solid var(--rule);cursor:pointer;transition:background .1s}.cal-slot:hover{background:var(--bg-warm)}.cal-slot--occupied{background:#f0ece4;cursor:not-allowed}.cal-slot--occupied:hover{background:#f0ece4}.cal-slot--selected{background:#e8f0e8}.cal-slot--selected:hover{background:#e0eae0}.cal-slot--booked{background:var(--success-bg);border-color:#c4dcc4}.cal-confirm-bar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--sidebar-bg);border:1px solid var(--rule);margin-bottom:.5rem;font-family:var(--font-ui);font-size:.82rem;color:var(--ink-light)}.cal-booked-msg{font-family:var(--font-ui);font-size:.85rem;color:var(--success);padding:.75rem 1rem;background:var(--success-bg);border:1px solid #c4dcc4;margin-bottom:.5rem}.confirm-section{margin-bottom:1.5rem}.confirm-section-title{font-family:var(--font-ui);font-size:.72rem;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--ink-lighter);margin-bottom:.5rem;padding-bottom:.35rem;border-bottom:1px solid var(--rule)}.confirm-value{font-family:var(--font-body);font-size:1rem;color:var(--ink)}.confirm-fields{display:flex;flex-direction:column;gap:.4rem}.confirm-field-row{display:flex;gap:1rem;padding:.3rem 0}.confirm-field-row dt{font-family:var(--font-ui);font-size:.78rem;color:var(--ink-lighter);width:140px;flex-shrink:0}.confirm-field-row dd{font-family:var(--font-body);font-size:.95rem;color:var(--ink);flex:1;min-width:0}.confirm-empty{color:var(--ink-faint);font-style:italic}.confirm-file-group{margin-bottom:.75rem}.confirm-file-cat{font-family:var(--font-ui);font-size:.72rem;font-weight:600;color:var(--ink-light);margin-bottom:.3rem}.step-confirm--success{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 0}.success-icon{margin-bottom:1rem}.success-heading{font-family:var(--font-ui);font-size:.88rem;font-style:italic;color:var(--ink-lighter);margin-bottom:1.25rem;max-width:480px;line-height:1.5}.success-saying{font-family:var(--font-body);font-size:1.5rem;font-weight:600;color:var(--ink);margin-bottom:.5rem}.success-details{width:100%;max-width:520px;margin-bottom:1.25rem;border:1px solid var(--rule);padding:1rem}.success-row{display:flex;justify-content:space-between;padding:.35rem 0}.success-row+.success-row{border-top:1px solid var(--rule)}.success-label{font-family:var(--font-ui);font-size:.72rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-lighter)}.success-value{font-family:var(--font-mono);font-size:.82rem;color:var(--ink)}.success-note{font-family:var(--font-ui);font-size:.85rem;color:var(--ink-lighter);margin-bottom:1.5rem;max-width:400px;line-height:1.5}[data-portal=works]{--wp: #5c7085;--wp-dark: #475c6d;--wp-light: #eef2f6;--wp-mid: #9cb0c0;--wp-tint: #f6f8fa}[data-portal=works] .progress-step--active .progress-dot{border-color:var(--wp);color:var(--wp);box-shadow:0 0 0 3px var(--wp-light)}[data-portal=works] .progress-step--done .progress-dot{background:var(--wp);border-color:var(--wp)}[data-portal=works] .progress-step--active .progress-label{color:var(--wp-dark)}[data-portal=works] .progress-step--done:before,[data-portal=works] .progress-step--active:before{background:var(--wp)}[data-portal=works] .btn-primary{background:var(--wp);border-color:var(--wp);color:#fff}[data-portal=works] .btn-primary:hover{background:var(--wp-dark);border-color:var(--wp-dark)}[data-portal=works] .btn-primary:disabled{background:var(--wp-mid);border-color:var(--wp-mid)}[data-portal=works] .btn-primary:disabled:hover{background:var(--wp-mid)}[data-portal=works] .type-card{border-left:3px solid transparent;transition:border-color .15s,background .15s,box-shadow .15s}[data-portal=works] .type-card:hover{border-left-color:var(--wp-mid);box-shadow:0 2px 8px #5c708514}[data-portal=works] .type-card--selected{border-left-color:var(--wp);background:var(--wp-light);box-shadow:0 2px 12px #5c70851f}[data-portal=works] .type-card--selected .type-card-title{color:var(--wp-dark)}[data-portal=works] .type-card-label{display:inline-block;background:var(--wp-light);color:var(--wp);padding:.1rem .45rem;font-size:.6rem;letter-spacing:1px;border-radius:2px}[data-portal=works] .type-card--selected .type-card-label{background:var(--wp);color:#fff}[data-portal=works] .sub-choice-prompt{color:var(--wp-dark);font-weight:600}[data-portal=works] .upload-zone{border-color:var(--wp-mid);border-style:dashed}[data-portal=works] .upload-zone:hover{border-color:var(--wp);background:var(--wp-tint)}[data-portal=works] .upload-zone--dragover{border-color:var(--wp);background:var(--wp-light);border-style:solid}[data-portal=works] .upload-icon{color:var(--wp)}[data-portal=works] .upload-zone-label{color:var(--wp-dark)}[data-portal=works] .upload-zone-req--required{color:var(--wp);font-weight:600}[data-portal=works] .file-list-item{border-left:2px solid var(--wp-mid);background:var(--wp-tint)}[data-portal=works] .review-fields{background:var(--wp-tint);padding:1.25rem;border:1px solid var(--wp-light);border-top:3px solid var(--wp)}[data-portal=works] .review-fields .form-field input:focus,[data-portal=works] .review-fields .form-field select:focus,[data-portal=works] .review-fields .form-field textarea:focus{border-color:var(--wp);box-shadow:0 0 0 2px #5c70851f}[data-portal=works] .field-dot--ai{background:var(--wp);box-shadow:0 0 0 2px var(--wp-light)}[data-portal=works] .step-heading{color:var(--wp-dark)}[data-portal=works] .step-actions{border-top-color:var(--wp-light)}[data-portal=works] .confirm-section-title{color:var(--wp);border-bottom-color:var(--wp-mid);padding-left:.6rem;border-left:3px solid var(--wp)}[data-portal=works] .confirm-field-row dt{color:var(--wp-dark)}[data-portal=works] .cal-header{background:var(--wp-light);border-bottom-color:var(--wp-mid)}[data-portal=works] .cal-time-col{background:var(--wp-tint)}[data-portal=works] .cal-time-cell{background:var(--wp-tint);border-right-color:var(--wp-light)}[data-portal=works] .cal-day-name{color:var(--wp)}[data-portal=works] .cal-slot--selected{background:var(--wp-light)}[data-portal=works] .cal-slot--selected:hover{background:#e2e9ef}[data-portal=works] .cal-confirm-bar{background:var(--wp-light);border-color:var(--wp-mid);color:var(--wp-dark)}[data-portal=works] .cal-nav-label{color:var(--wp-dark)}[data-portal=works] .success-details{border-color:var(--wp-mid);border-top:3px solid var(--wp)}[data-portal=works] .success-label{color:var(--wp)}[data-portal=works] .login-container{border-top-color:var(--wp)}[data-portal=works] .login-form .btn-primary{background:var(--wp);border-color:var(--wp)}[data-portal=works] .login-form .btn-primary:hover{background:var(--wp-dark);border-color:var(--wp-dark)}[data-portal=works] .loading-spinner{border-top-color:var(--wp)}.loading-spinner{width:28px;height:28px;border:2px solid var(--rule);border-top-color:var(--ink);border-radius:50%;animation:spin .7s linear infinite}.loading-spinner--small{width:16px;height:16px;border-width:1.5px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:600px){.masthead{padding:.75rem 1rem}.main-content{padding:1.25rem 1rem 2rem}.card-grid{grid-template-columns:1fr}.step-heading{font-size:1.2rem}.confirm-field-row{flex-direction:column;gap:.1rem}.confirm-field-row dt{width:auto}.cal-grid-wrapper{margin-left:-1rem;margin-right:-1rem}.masthead-inner{flex-direction:column;align-items:flex-start;gap:.5rem}.masthead-right{align-self:flex-end}}@media(max-width:375px){html{font-size:15px}.type-card,.upload-zone{padding:1rem}}
