:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#152223;background:#e8e9e4;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,textarea,select{font:inherit}button{cursor:pointer}[hidden]{display:none!important}
.portal-header{height:72px;background:#fbfbf7;border-bottom:1px solid #d8dad4;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,4vw,54px);position:sticky;top:0;z-index:5}
.portal-brand,.portal-header-right{display:flex;align-items:center;gap:12px}.portal-brand strong,.portal-brand small{display:block}.portal-brand strong{font-size:16px}.portal-brand small{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:#667071;margin-top:2px}.portal-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#dfff4f;color:#132c2d;font-weight:900;font-size:20px}.portal-header-right{font-size:13px;color:#667071}
.dashboard{max-width:1260px;margin:0 auto;padding:42px clamp(18px,4vw,54px) 80px}.dashboard-hero{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:30px}.dashboard-hero h1{font-size:clamp(34px,4vw,54px);line-height:1.06;letter-spacing:-.055em;margin:8px 0 10px}.dashboard-hero p:last-child{color:#667071;margin:0;font-size:15px}.eyebrow{margin:0;color:#71807b;text-transform:uppercase;letter-spacing:.17em;font-size:10px;font-weight:800}
.portal-button{border:0;border-radius:11px;padding:11px 16px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:750;text-decoration:none;white-space:nowrap}.portal-button.primary{background:#132c2d;color:#fff}.portal-button.primary:hover{background:#1e4444}.portal-button.secondary{background:#dfff4f;color:#132c2d}.portal-button.secondary:hover{background:#cdea36}.portal-button.subtle{background:transparent;color:#425052}.portal-button.subtle:hover{background:#eef0eb}.portal-button.danger{background:#f9e9e5;color:#9b3e30}.portal-button.danger:hover{background:#f2d3ca}.portal-button:disabled{opacity:.55;cursor:not-allowed}
.portal-panel{background:#fbfbf7;border:1px solid #d8dad4;border-radius:20px;padding:25px;margin-bottom:22px;box-shadow:0 10px 35px rgba(30,47,46,.045)}.panel-heading{display:flex;justify-content:space-between;align-items:start;gap:20px;margin-bottom:22px}.panel-heading h2,.compact-panel h2{font-size:25px;letter-spacing:-.035em;margin:6px 0 4px}.panel-heading p:last-child{font-size:13px;color:#667071;margin:5px 0 0}.count-pill{min-width:34px;height:34px;border-radius:99px;background:#e9eee8;display:grid;place-items:center;font-weight:800;font-size:12px;color:#526462}.filter-row{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin-bottom:16px}.filter-row label{max-width:280px;flex:1;min-width:180px}.portal-form label,.filter-row label{display:block;font-size:12px;font-weight:750;color:#596363}.portal-form input,.portal-form textarea,.portal-form select,.filter-row input,.filter-row select,.access-settings select{width:100%;display:block;margin-top:6px;border:1px solid #cfd3cc;border-radius:10px;background:#fff;padding:10px 11px;color:#152223;outline:none}.portal-form textarea{resize:vertical;min-height:80px}.portal-form input:focus,.portal-form textarea:focus,.portal-form select:focus,.filter-row input:focus,.filter-row select:focus{border-color:#829d52;box-shadow:0 0 0 3px rgba(196,226,83,.22)}.portal-form small{display:block;color:#6d7675;font-weight:400;margin-top:5px}.portal-form{display:grid;gap:15px}.two-column-form{grid-template-columns:repeat(2,minmax(0,1fr))}.two-column-form .wide{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-start}.checkline{display:flex!important;align-items:center;gap:7px}.checkline input{width:auto!important;margin:0!important}
.proposal-list,.cases-list,.users-list{display:grid;gap:10px}.proposal-row,.user-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(130px,.8fr) minmax(120px,.7fr) auto;gap:14px;align-items:center;padding:16px;border-radius:12px;background:#f0f2ec}.proposal-row strong,.user-row strong{display:block;font-size:15px}.proposal-row small,.user-row small{display:block;color:#6b7472;font-size:12px;margin-top:4px}.proposal-row .row-date,.user-row .row-role{color:#586260;font-size:12px}.row-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.row-actions .portal-button{padding:8px 11px;font-size:12px}.empty-state{color:#7a8581;background:#f1f3ed;padding:24px;border-radius:12px;text-align:center;font-size:14px}
.section-actions{margin-bottom:15px}.cases-list{grid-template-columns:repeat(2,minmax(0,1fr))}.library-case{border:1px solid #d6d9d0;border-radius:15px;overflow:hidden;background:#f3f5ef;display:grid;grid-template-columns:130px minmax(0,1fr)}.library-case img,.case-no-image{width:130px;height:100%;min-height:185px;object-fit:cover;background:#e1e6dd}.case-no-image{display:grid;place-items:center;color:#8a948e;text-align:center;font-size:12px;padding:15px}.library-case-body{padding:16px;min-width:0}.case-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#77817d;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:800}.library-case h3{font-size:17px;margin:8px 0 6px;line-height:1.15}.library-case p{font-size:12px;line-height:1.45;color:#586360;margin:0 0 8px}.case-meta{font-size:11px;color:#78827f}.case-actions{margin-top:13px;display:flex;gap:6px;flex-wrap:wrap}.case-actions .portal-button{font-size:11px;padding:7px 10px}.status-chip{padding:4px 6px;border-radius:6px;background:#e1ecdd;color:#547048}.status-chip.archived{background:#f5e7dd;color:#8b674b}.access-settings{border-top:1px solid #d6d9d0;margin-top:14px;padding-top:12px;font-size:12px}.access-settings>label{font-weight:750}.access-settings select{font-size:12px}.access-settings .checkline{margin:9px 0}.access-users{display:grid;gap:3px;margin:6px 0}.nested-panel{border-radius:15px;background:#eef1ea;padding:18px;margin-bottom:19px}.nested-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.nested-heading h3{margin:0}.nested-heading .portal-button{font-size:12px}.user-form{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;margin-bottom:20px}.user-form .portal-button{min-height:41px}.backup-row{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid #dde0d9;margin-top:25px;padding-top:22px}.backup-row strong{font-size:14px}.backup-row p{margin:4px 0 0;color:#667071;font-size:12px}.password-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.password-form .portal-button{min-height:41px}.compact-panel{padding:22px 25px}.compact-panel h2{font-size:20px;margin:0 0 17px}.notice{padding:14px 17px;border-radius:11px;background:#e2f1da;color:#335c3c;margin-bottom:18px;font-size:13px;font-weight:700}.notice.error{background:#fae6de;color:#954a38}
.login-page{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 87% 10%,#dfff4f 0,transparent 24%),#e8e9e4}.login-card{width:min(460px,100%);background:#fbfbf7;padding:32px;border:1px solid #d6d9d0;border-radius:22px;box-shadow:0 30px 80px rgba(30,47,46,.12)}.login-copy{margin:40px 0 25px}.login-copy h1{font-size:35px;letter-spacing:-.05em;line-height:1.08;margin:8px 0 10px}.login-copy p:last-child{color:#667071;font-size:14px;line-height:1.5;margin:0}.login-card .portal-form .portal-button{width:100%;margin-top:5px}.form-error{margin:0;color:#9b3e30;background:#fae6de;padding:10px 12px;border-radius:8px;font-size:12px}.login-note{font-size:11px;color:#7b8582;line-height:1.5;margin:24px 0 0}
.user-form{grid-template-columns:repeat(5,minmax(0,1fr))}
.proposal-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.proposal-tabs .portal-button{font-size:13px}#trashHint{color:#64748b;font-size:13px;line-height:1.5}
.proposal-delete-dialog{max-width:470px;width:calc(100% - 32px);padding:26px;border:1px solid #e2e8f0;border-radius:20px;color:#0b163a;box-shadow:0 30px 100px rgba(11,22,58,.25)}.proposal-delete-dialog::backdrop{background:rgba(11,22,58,.45)}.proposal-delete-dialog h2{font-size:21px;line-height:1.3;margin:0 0 15px}.proposal-delete-dialog p{font-size:14px;color:#64748b;line-height:1.55}.proposal-delete-dialog form{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}
.library-case img{object-fit:contain}
.image-edit-preview{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.image-edit-preview img{width:144px;height:100px;object-fit:contain;border:1px solid #d4deee;border-radius:10px;background:#f5f7fb}.image-edit-preview small{display:block;max-width:360px;margin-top:8px;line-height:1.5;color:#64748b}.image-edit-preview button{min-height:44px}
.profile-save-status{margin:0;line-height:1.5;scroll-margin:90px 0 20px;overflow-wrap:anywhere}.profile-save-status[data-state=saving]{background:#eef3ff;color:#253c75}.profile-save-status:focus-visible{outline:3px solid #3459ff;outline-offset:3px}
@media(max-width:900px){.cases-list{grid-template-columns:1fr}.user-form{grid-template-columns:repeat(2,minmax(0,1fr))}.password-form{grid-template-columns:repeat(2,minmax(0,1fr))}.proposal-row,.user-row{grid-template-columns:minmax(0,1fr) auto}.proposal-row .row-date,.user-row .row-role{display:none}}
@media(max-width:600px){.portal-header{padding:0 15px}.portal-brand small{display:none}.portal-header-right #userBadge{display:none}.dashboard{padding:25px 15px 55px}.dashboard-hero{align-items:start;flex-direction:column}.dashboard-hero h1{font-size:36px}.portal-panel{padding:18px;border-radius:15px}.two-column-form,.user-form,.password-form{grid-template-columns:1fr}.two-column-form .wide{grid-column:auto}.library-case{grid-template-columns:105px minmax(0,1fr)}.library-case img,.case-no-image{width:105px}.backup-row{align-items:start;flex-direction:column}}
@media(max-width:900px){.proposal-row .row-date{display:block;grid-column:1/-1}}
@media(max-width:600px){.proposal-row{grid-template-columns:1fr}.proposal-row .row-actions{justify-content:flex-start}}
.filter-row { display:flex; flex-wrap:wrap; gap:14px; }
.filter-row label { flex:1 1 180px; min-width:0; }
.filter-summary { color:#475569; font-size:14px; margin:8px 0 16px; }
