:root{color-scheme:light;--pine:#123c33;--forest:#2c7155;--gold:#b28f55;--ink:#182a2a;--muted:#687774;--page:#f6f7f5;--line:#e6ebe7;--soft:#edf3ee;--red:#b74b4d;--shadow:0 7px 30px rgba(21,49,40,.04);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;scroll-behavior:smooth}body{background:var(--page);color:var(--ink);font-size:14px}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin-top:0}svg{flex:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b8d4be;outline-offset:2px}::selection{background:#d6eada}
.boot{height:100vh;display:flex;gap:12px;align-items:center;justify-content:center;color:var(--forest)}.spinner{width:19px;height:19px;border:2.5px solid #c9d9d0;border-top-color:var(--forest);border-radius:50%;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.lucide{width:18px;height:18px;stroke-width:1.8;stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round}
/* LOGIN */
.login-page{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);min-height:100vh;background:#fff}.login-art{position:relative;overflow:hidden;background:radial-gradient(circle at 4% 94%,#326e5b 0,transparent 36%),linear-gradient(135deg,#0c2c26 0,#154b3d 54%,#1a5c49 100%);color:#fff;padding:clamp(38px,5.2vw,86px);display:flex;flex-direction:column;justify-content:space-between}.login-art:before{content:"";position:absolute;width:640px;height:640px;border:1px solid #c9d6aa30;border-radius:50%;right:-230px;top:10%;box-shadow:0 0 0 68px #c9d6aa08,0 0 0 136px #c9d6aa09,0 0 0 204px #c9d6aa05}.login-art:after{content:"";position:absolute;width:480px;height:480px;border:1px solid #c9d6aa20;border-radius:50%;right:-280px;top:28%}.login-art>*{position:relative;z-index:1}.brand{display:flex;align-items:center;gap:13px}.brand-mark{width:43px;height:43px;border:1px solid #d9d0ae55;border-radius:11px;display:flex;align-items:center;justify-content:center;background:#ffffff0c;color:#eadabb}.brand-mark .lucide{height:25px;width:25px}.brand-title{font-weight:790;letter-spacing:-.025em;font-size:14px;line-height:1.18}.brand-desc{display:block;color:#d2e0d7a8;font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin-top:5px}.hero-eyebrow{display:flex;gap:13px;align-items:center;color:#e4d0a6;font-size:11px;font-weight:750;letter-spacing:.16em;text-transform:uppercase}.hero-eyebrow:before{content:"";width:35px;height:1px;background:#d7c09a}.login-art h1{font-family:Georgia,"Times New Roman",serif;font-weight:450;letter-spacing:-.045em;font-size:clamp(45px,5vw,73px);line-height:1.08;max-width:650px;margin:24px 0}.login-art h1 em{font-style:italic;color:#e5d0a3}.login-art p{max-width:460px;font-size:15px;line-height:1.85;color:#d2e3d9}.art-stats{display:flex;gap:30px;padding-top:28px;border-top:1px solid #ffffff3c}.art-stat strong{font-size:23px;display:block;color:#f7f0df}.art-stat span{font-size:11px;color:#c9d9d0}.login-form-side{padding:55px clamp(34px,6vw,120px);display:flex;flex-direction:column;justify-content:center;position:relative}.login-topline{position:absolute;right:48px;top:33px;font-size:12px;color:var(--muted)}.login-topline b{color:var(--forest)}.login-panel{max-width:440px;width:100%;margin:0 auto}.overline{font-size:11px;font-weight:780;letter-spacing:.14em;text-transform:uppercase;color:var(--forest)}.login-panel h2{font-size:34px;letter-spacing:-.055em;margin:15px 0 10px;font-weight:720}.login-panel>.hint{line-height:1.65;font-size:14px;color:var(--muted);margin-bottom:32px}.form-field{display:grid;gap:7px;margin-bottom:17px}.form-field label{font-size:12px;font-weight:730;color:#384b45}.form-control{min-height:43px;border:1px solid #dce4df;background:#fff;border-radius:9px;padding:10px 13px;outline:none;color:var(--ink);width:100%;transition:box-shadow .18s,border .18s}.form-control:focus{border-color:#77a68b;box-shadow:0 0 0 3px #c7dec930}.form-control::placeholder{color:#a3ada9}textarea.form-control{min-height:105px;resize:vertical;line-height:1.55}.input-icon{display:flex;align-items:center;position:relative}.input-icon .lucide{position:absolute;left:13px;color:#9ba9a1}.input-icon input{padding-left:42px}
.btn{appearance:none;border:1px solid transparent;border-radius:9px;padding:10px 15px;font-weight:700;letter-spacing:-.015em;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;transition:transform .13s ease,background .15s ease,box-shadow .15s ease;white-space:nowrap}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn .lucide{width:16px;height:16px}.btn-primary{background:var(--pine);color:#fff;box-shadow:0 4px 13px #163a2f18}.btn-primary:hover{background:#1b5143}.btn-secondary{background:#fff;color:#294e40;border-color:#d9e4dc}.btn-secondary:hover{background:#f6f9f7}.btn-soft{background:#e6f0e9;color:#235943}.btn-soft:hover{background:#d8ebdd}.btn-danger{background:#fcf0ef;color:#a63c3e;border-color:#efd5d4}.btn-plain{background:transparent;color:#556a60}.btn-plain:hover{background:#f0f3f0}.btn-sm{padding:7px 10px;min-height:32px;font-size:12px}.btn-lg{padding:13px 17px;min-height:47px}.btn-block{width:100%}.btn-icon{width:36px;height:36px;padding:0}.login-divider{display:flex;align-items:center;gap:12px;font-size:11px;font-weight:710;text-transform:uppercase;letter-spacing:.09em;color:#8c9b93;margin:34px 0 18px}.login-divider:after,.login-divider:before{content:"";height:1px;background:var(--line);flex:1}.demo-accounts{display:grid;grid-template-columns:1fr 1fr;gap:9px}.demo-user{padding:10px 12px;border:1px solid var(--line);border-radius:9px;text-align:left;background:#fff;color:var(--ink);font-size:12px;font-weight:710;display:flex;gap:9px;align-items:center}.demo-user:hover{border-color:#7fa991;background:var(--soft)}.demo-user small{display:block;color:#86968d;font-size:10px;font-weight:500;margin-top:3px}.login-foot{margin-top:24px;color:#93a29c;font-size:11px;line-height:1.7}.field-error{color:var(--red);font-size:12px;margin:12px 0}
/* SHELL */
.layout{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;align-self:start;height:100vh;background:var(--pine);color:#fff;display:flex;flex-direction:column;padding:29px 17px 18px;z-index:20}.sidebar .brand{margin:1px 10px 37px}.sidebar .brand-title{font-size:13px}.sidebar .brand-mark{width:38px;height:38px}.sidebar-title{color:#b8cfc4;font-size:10px;letter-spacing:.15em;font-weight:800;text-transform:uppercase;padding:0 16px;margin-bottom:13px}.nav-link{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:9px;color:#bad0c4;font-size:13px;font-weight:600;margin-bottom:5px;transition:background .15s,color .15s}.nav-link .lucide{width:18px;height:18px;stroke-width:1.65}.nav-link.active{background:#ffffff1a;color:#fff;box-shadow:inset 3px 0 0 #d4ba84}.nav-link:hover{background:#ffffff0e;color:#fff}.side-spacer{flex:1}.help-box{padding:16px;border:1px solid #ffffff25;border-radius:11px;background:#ffffff0a;margin:0 4px 22px}.help-box .lucide{color:#f1d5a9;margin-bottom:12px}.help-box strong{display:block;font-size:12px;line-height:1.4}.help-box p{font-size:11px;line-height:1.65;color:#bfd3c8;margin:6px 0 0}.sidebar-user{display:flex;gap:11px;align-items:center;border-top:1px solid #ffffff20;padding:17px 6px 0}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;width:36px;height:36px;flex:none;font-weight:760;letter-spacing:-.02em;background:#e3ece5;color:#1d6548}.sidebar .avatar{background:#d5b77c;color:#214635}.sidebar-user strong{font-size:12px;display:block;max-width:145px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-user span{font-size:10px;color:#b6cdc0}.sidebar-user button{margin-left:auto;background:none;border:0;color:#d7e6de;padding:5px}.sidebar-user button:hover{color:#fff}.app-main{min-width:0}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,3.4vw,58px);gap:18px}.topbar-left{display:flex;gap:14px;align-items:center}.breadcrumbs{font-size:12px;color:#96a39d}.breadcrumbs strong{font-weight:730;color:#344f42}.breadcrumbs .slash{color:#bdc8c2;margin:0 8px}.topbar-right{display:flex;align-items:center;gap:16px}.header-date{font-size:11px;color:#85948d}.icon-btn{border:1px solid var(--line);background:#fff;color:#476556;border-radius:9px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;position:relative}.icon-btn:hover{background:var(--soft)}.dot-notif{width:7px;height:7px;border:2px solid white;background:#cf7258;position:absolute;right:7px;top:6px;border-radius:50%}.mobile-menu{display:none}.main-content{max-width:1540px;padding:clamp(23px,3vw,43px) clamp(23px,3.4vw,58px) 70px;margin:0 auto}.page-heading{display:flex;justify-content:space-between;gap:25px;align-items:flex-end;margin-bottom:27px}.page-heading h1{font-family:Georgia,"Times New Roman",serif;font-weight:600;font-size:35px;letter-spacing:-.045em;line-height:1.15;margin:10px 0}.page-heading p{color:var(--muted);font-size:13px;line-height:1.6;margin:0;max-width:660px}.heading-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.eyebrow{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--forest);font-weight:800;display:flex;align-items:center;gap:9px}.eyebrow:before{content:"";width:16px;height:1px;background:var(--gold)}
/* COMMON */
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:25px}.kpi-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:21px 22px 18px;box-shadow:var(--shadow)}.kpi-top{display:flex;align-items:flex-start;justify-content:space-between}.kpi-top span{font-size:12px;color:#768a7f;font-weight:610}.kpi-icon{width:34px;height:34px;border-radius:9px;background:#edf4ee;color:var(--forest);display:flex;align-items:center;justify-content:center}.kpi-icon.gold{background:#f9f2e8;color:#9e7741}.kpi-icon.blue{background:#edf2f8;color:#577caa}.kpi-icon.red{background:#f9eded;color:#b16e5c}.kpi-value{font-family:Georgia,serif;font-size:39px;letter-spacing:-.04em;margin-top:10px;line-height:1.1;color:#163c32}.kpi-bottom{border-top:1px solid #eef0ed;margin-top:15px;padding-top:12px;font-size:11px;color:#89968d}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:22px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);min-width:0}.card-head{padding:22px 24px 18px;border-bottom:1px solid #eef1ed;display:flex;align-items:center;justify-content:space-between;gap:15px}.card-title{font-size:16px;font-weight:770;letter-spacing:-.025em;margin:0}.card-subtitle{font-size:12px;color:var(--muted);margin:6px 0 0}.card-body{padding:23px 24px}.text-link{color:var(--forest);font-size:12px;font-weight:760;display:inline-flex;align-items:center;gap:5px}.text-link:hover{text-decoration:underline}.text-link .lucide{width:14px;height:14px}.table-wrap{overflow:auto;max-width:100%}table{width:100%;border-collapse:collapse}th{font-size:10px;text-transform:uppercase;letter-spacing:.09em;text-align:left;color:#8d9d93;padding:12px 14px;background:#f9fbf9;white-space:nowrap;font-weight:790}td{padding:15px 14px;border-top:1px solid #edf0ed;font-size:12px;color:#465b50;vertical-align:middle}tbody tr:hover{background:#fcfdfc}.table-title{font-weight:760;font-size:12.5px;color:#233d34;max-width:345px;line-height:1.45;display:block}.table-note{font-size:11px;color:#95a09a;margin-top:5px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.01em;font-weight:770;padding:5px 9px;border-radius:6px;background:#eaf2ed;color:#2a6a4d;white-space:nowrap}.badge:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:currentColor}.badge.amber{color:#9c681f;background:#fcf3e3}.badge.red{color:#a34f44;background:#faedeb}.badge.blue{color:#4e719d;background:#edf3fb}.badge.muted{color:#71817a;background:#f0f2f1}.badge.purple{color:#716099;background:#f1eef9}.badge.plain:before{display:none}.priority-high{color:#a14c42;background:#fcedeb}.priority-medium{color:#a77a2e;background:#fbf4e9}.priority-low{color:#517d6b;background:#eaf4ee}.list-item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid #edf0ec;align-items:flex-start}.list-item:last-child{border:0}.list-icon{display:grid;place-items:center;flex:none;height:34px;width:34px;background:#eef4f0;color:var(--forest);border-radius:9px}.list-item strong{font-size:12px;display:block;line-height:1.45;font-weight:740}.list-item p{font-size:11.5px;color:var(--muted);line-height:1.65;margin:5px 0 0}.list-meta{font-size:10px;color:#a2aea5;white-space:nowrap;margin-left:auto}.empty{display:grid;justify-items:center;text-align:center;padding:42px 20px;color:var(--muted)}.empty-icon{width:60px;height:60px;border-radius:50%;background:#eaf3ec;display:grid;place-items:center;color:#579070;margin-bottom:15px}.empty-icon svg{height:25px;width:25px}.empty h3{font-size:15px;color:#385849;margin:0 0 6px}.empty p{max-width:310px;font-size:12px;line-height:1.7;margin:0 0 14px}.section-note{padding:13px 17px;background:#f2f7f3;border:1px solid #dcebe0;color:#577665;border-radius:9px;line-height:1.6;font-size:12px;display:flex;gap:10px;align-items:flex-start}.section-note .lucide{width:18px;margin-top:1px}
.searchbar{border:1px solid var(--line);background:#fff;border-radius:10px;display:flex;align-items:center;gap:8px;padding:0 11px;min-width:245px}.searchbar svg{color:#8fa49a}.searchbar input{border:0;background:none;outline:0;min-height:40px;min-width:0;flex:1;font-size:12px}.tool-row{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-bottom:17px;flex-wrap:wrap}.tool-row-right{display:flex;align-items:center;gap:8px}.select-sm{border:1px solid var(--line);background:#fff;min-height:40px;padding:0 10px;border-radius:9px;color:#4c6859;min-width:142px}.inline-bare{border:0;padding:0;background:none;color:var(--forest);font-weight:740;text-align:left}.inline-bare:hover{text-decoration:underline}
/* PROJECT */
.project-header{padding:24px 28px;background:#fff;border:1px solid var(--line);border-radius:13px;margin-bottom:19px}.project-header h1{font:600 28px/1.25 Georgia,serif;margin:10px 0 15px;letter-spacing:-.035em;max-width:960px}.meta-row{display:flex;align-items:center;gap:22px;flex-wrap:wrap;color:#72887a;font-size:12px}.meta-row>span{display:flex;align-items:center;gap:7px}.meta-row svg{width:15px;height:15px}.project-columns{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,.8fr);gap:20px;align-items:start}.document-row{display:flex;gap:13px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.document-row:last-child{border:0}.file-avatar{width:44px;height:44px;border-radius:10px;background:#eaf1ec;color:#357057;display:grid;place-items:center}.document-row-main{flex:1;min-width:0}.document-row strong{font-size:12px;display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-bottom:6px}.document-row small{font-size:11px;color:#94a197}.row-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.upload-zone{border:1.5px dashed #b6d3bd;background:#f8fbf8;border-radius:10px;padding:24px;text-align:center}.upload-zone input{max-width:100%;font-size:12px}.upload-zone p{font-size:12px;color:#7a8f80;margin:6px 0 14px}.upload-zone .lucide{color:var(--forest);width:27px;height:27px;margin-bottom:7px}.side-fact{padding:13px 0;border-bottom:1px solid #edf1ed}.side-fact:last-child{border-bottom:0}.side-fact small{font-size:11px;color:#889b8e;display:block;margin-bottom:6px}.side-fact strong{font-size:12px;color:#2d493b;line-height:1.45;font-weight:725}.timeline{padding-left:20px;border-left:1.5px solid #e0e9e1;margin:10px 0 0 7px}.timeline-item{position:relative;padding:0 0 20px 17px}.timeline-item:before{content:"";width:9px;height:9px;background:#b7cfbf;border:2px solid white;box-shadow:0 0 0 1px #cee0d0;border-radius:50%;position:absolute;left:-26px;top:3px}.timeline-item strong{font-size:12px;display:block}.timeline-item p{font-size:11.5px;color:var(--muted);margin:7px 0 0;line-height:1.5}.timeline-item span{font-size:10px;color:#9caba1}.tabs{display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--line);margin:19px 0 23px;overflow:auto}.tab{background:transparent;border:0;padding:12px 15px;color:#82948b;border-bottom:2px solid transparent;white-space:nowrap;font-size:12px;font-weight:730}.tab.active{color:#235d43;border-bottom-color:#2c7254}.tab:hover{color:#27684d}
/* REVIEW */
.review-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.review-title h1{font-family:Georgia,serif;font-size:29px;line-height:1.28;font-weight:600;letter-spacing:-.04em;max-width:870px;margin:10px 0}.review-summary-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,.45fr);gap:20px;margin:19px 0}.summary-card{padding:25px 27px;border:1px solid var(--line);border-radius:12px;background:#fff}.summary-card h2{font-size:13px;font-weight:770;margin:0 0 13px}.summary-card p{font-size:13px;line-height:1.78;color:#65796c;margin:0}.review-score{background:var(--pine);color:#fff;border-radius:12px;padding:21px 24px}.review-score small{text-transform:uppercase;letter-spacing:.12em;font-size:10px;color:#bbd4c7}.review-score .score-num{font-family:Georgia,serif;font-size:56px;line-height:1.15;margin:10px 0}.review-score .score-num span{font-family:Inter,system-ui,sans-serif;font-size:13px;color:#bdd4c7}.review-score p{font-size:11px;line-height:1.5;color:#d0dfd6;margin:6px 0 0}.workspace{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.85fr);gap:18px;align-items:start}.viewer{background:#fff;border:1px solid var(--line);border-radius:12px;min-width:0;overflow:hidden}.viewer-head{padding:15px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:13px}.viewer-head strong{font-size:13px}.viewer-head span{color:#9aa69f;font-size:11px}.doc-paper{background:#fff;padding:27px 31px;max-height:780px;overflow:auto;line-height:1.9;color:#4a5b51;font-size:12.5px}.doc-paper p{margin:0 0 14px;white-space:pre-wrap}.doc-paper h3{font-size:15px;margin:25px 0 14px;color:#24483c}.findings-panel{background:#fff;border:1px solid var(--line);border-radius:12px;max-height:850px;overflow:auto}.findings-panel-head{padding:17px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.findings-panel-head strong{font-size:14px}.finding{padding:18px;border-bottom:1px solid #eef1ee}.finding:last-child{border:0}.finding-top{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.finding h3{font-size:13px;line-height:1.5;letter-spacing:-.005em;font-weight:770;margin:0 0 9px}.finding p{font-size:11.5px;line-height:1.65;color:#697c70;margin:0 0 8px}.finding blockquote{border-left:2px solid #b3d6bd;margin:11px 0;padding:7px 12px;background:#f8faf8;font-size:11px;line-height:1.62;color:#516a5c}.finding-details{background:#f9fbf9;border:1px solid #ecf1ed;padding:11px 12px;border-radius:8px;margin:11px 0}.finding-details strong{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#48765b;display:block;margin-bottom:6px}.finding-details p{margin:0}.finding-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}.review-matrix{width:100%;border-collapse:separate;border-spacing:0}.review-matrix td,.review-matrix th{padding:13px 15px}.review-matrix td:nth-child(1){font-weight:720;color:#305342}.review-matrix td:nth-child(2){line-height:1.5}.signal-list{list-style:none;padding:0;margin:0;display:grid;gap:11px}.signal-list li{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.6;color:#52705c}.signal-list li svg{color:#48956e;width:16px;height:16px;margin-top:1px}.signal-list.alert li svg{color:#b97343}.review-controls{background:#fff;border:1px solid var(--line);padding:22px;border-radius:12px}.review-controls h3{margin:0 0 14px;font-size:15px}.review-controls form{display:grid;gap:4px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.split-list{display:grid;grid-template-columns:1fr 1fr;gap:14px}.diff-line{font-size:11.5px;line-height:1.6;padding:9px 11px;margin-bottom:6px;border-radius:5px;overflow-wrap:anywhere}.diff-line.plus{background:#e9f5ec;color:#326f4d;border-left:2px solid #72b58a}.diff-line.minus{background:#fbefec;color:#985749;border-left:2px solid #d59d91}.diff-title{font-size:12px;color:#3f5c4b;margin:0 0 10px}
/* MODALS */
.modal-backdrop{position:fixed;inset:0;background:rgba(8,31,26,.57);z-index:60;display:grid;place-items:center;padding:18px;backdrop-filter:blur(3px)}.modal{width:min(560px,100%);max-height:min(92vh,900px);overflow:auto;border-radius:15px;background:#fff;box-shadow:0 24px 80px #051d172e}.modal.wide{width:min(950px,100%)}.modal-head{padding:22px 26px 19px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:13px}.modal-head h2{font-size:19px;line-height:1.3;margin:0;letter-spacing:-.03em}.modal-head p{font-size:12px;color:var(--muted);margin:8px 0 0}.modal-body{padding:24px 26px}.modal-foot{display:flex;justify-content:flex-end;gap:9px;padding:17px 26px;border-top:1px solid var(--line)}.close-btn{border:0;background:#f2f5f2;width:31px;height:31px;border-radius:7px;display:grid;place-items:center;color:#778c7e}.close-btn svg{width:17px;height:17px}#toast-root{position:fixed;bottom:25px;right:25px;z-index:90;display:grid;gap:10px}.toast{padding:13px 17px;min-width:240px;max-width:420px;background:#1e503e;color:#fff;border-radius:9px;display:flex;gap:11px;align-items:center;box-shadow:0 14px 40px #14281b33;font-size:12px;animation:slideIn .2s ease}.toast.error{background:#9d4742}@keyframes slideIn{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.error-pane{margin:30px auto;max-width:700px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:36px}.error-pane h2{font-size:21px}.error-pane p{color:var(--muted);line-height:1.7}.chip-row{display:flex;gap:7px;flex-wrap:wrap}.mini-dot{height:8px;width:8px;border-radius:50%;background:#5aab79;display:inline-block}.muted{color:var(--muted)}.small{font-size:12px}.tiny{font-size:10.5px}.center{text-align:center}.nowrap{white-space:nowrap}.mt-2{margin-top:10px}.mt-3{margin-top:15px}.mt-4{margin-top:21px}.mb-0{margin-bottom:0}.mb-2{margin-bottom:9px}.mb-3{margin-bottom:14px}.mb-4{margin-bottom:22px}.divider{height:1px;background:var(--line);margin:20px 0}.loading-plate{display:flex;align-items:center;gap:13px;padding:34px;color:#577663;font-size:13px;background:#fff;border-radius:11px;border:1px solid var(--line)}.mono{font-family:ui-monospace,Consolas,monospace}.mobile-overlay{display:none}
@media(max-width:1150px){.layout{grid-template-columns:213px minmax(0,1fr)}.sidebar{padding-left:12px;padding-right:12px}.main-content{padding:26px}.kpi-grid{gap:11px}.kpi-card{padding:17px}.dashboard-grid{grid-template-columns:1.3fr 1fr}.workspace{grid-template-columns:1fr}.doc-paper{max-height:500px}.project-columns{grid-template-columns:1fr}.review-summary-grid{grid-template-columns:1.45fr .65fr}}
@media(max-width:860px){.layout{display:block}.sidebar{position:fixed;transform:translateX(-110%);width:248px;transition:transform .2s}.sidebar.open{transform:translateX(0)}.mobile-overlay.open{display:block;position:fixed;inset:0;background:#051c1680;z-index:19}.mobile-menu{display:grid}.topbar{height:65px;padding:0 19px}.main-content{padding:24px 18px 65px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.login-page{grid-template-columns:1fr}.login-art{min-height:275px;padding:32px}.login-art h1{font-size:40px;max-width:500px;margin:12px 0}.login-art p{font-size:13px}.art-stats{display:none}.login-form-side{padding:42px 28px}.login-topline{display:none}.page-heading h1{font-size:30px}}
@media(max-width:520px){.topbar .header-date{display:none}.topbar-right{gap:8px}.topbar{padding:0 14px}.breadcrumbs{max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.main-content{padding:23px 13px 50px}.page-heading{display:block}.page-heading h1{font-size:29px}.heading-actions{margin-top:17px}.kpi-grid{gap:9px}.kpi-card{padding:15px}.kpi-value{font-size:30px}.card-head,.card-body{padding:17px}.project-header{padding:20px}.project-header h1{font-size:24px}.review-title h1{font-size:24px}.review-summary-grid{grid-template-columns:1fr}.doc-paper{padding:19px}.findings-panel{max-height:none}.two-col,.split-list{grid-template-columns:1fr}.demo-accounts{grid-template-columns:1fr 1fr}.login-art h1{font-size:37px}.login-form-side{padding:36px 21px}.modal-head,.modal-body,.modal-foot{padding-left:17px;padding-right:17px}.row-actions .btn{padding-left:8px;padding-right:8px}.meta-row{gap:10px}.tool-row{display:block}.tool-row-right{margin-top:12px;flex-wrap:wrap}.searchbar{width:100%}.review-score .score-num{font-size:45px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
/* Compact project summaries avoid cramped six-column tables in the dashboard. */
.compact-project-list{padding:0 22px}.compact-project{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:19px 0;border-bottom:1px solid var(--line)}.compact-project:last-child{border-bottom:0}.compact-project-main{min-width:0;flex:1}.compact-project-title{font-size:13px;line-height:1.48;font-weight:770;color:#235342;max-width:380px}.compact-project-main p{font-size:11px;color:#8c9b92;line-height:1.5;margin:7px 0 0}.compact-project-status{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:185px;min-width:130px}.compact-project-status .btn{padding:4px}
@media(max-width:520px){.compact-project-list{padding:0 17px}.compact-project{display:block}.compact-project-title{max-width:none;text-align:left}.compact-project-status{max-width:none;justify-content:flex-start;min-width:0;margin-top:12px}.compact-project-main p{font-size:11px}}

/* =======================================================
   ELEVATED INSTITUTIONAL DESIGN TOKENS & COMPONENTS
   ======================================================= */
:root {
  --font-serif: "Newsreader", "Charter", "Georgia", "Cambria", "Times New Roman", serif;
  --font-sans: "Plus Jakarta Sans", "Inter", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

/* Enhanced Focus & Accessibility */
:focus-visible {
  outline: 2.5px solid #2c7155 !important;
  outline-offset: 2.5px !important;
}

/* Certificate Banner in Project Detail */
.certificate-banner {
  background: linear-gradient(135deg, #fcf9f2 0%, #f4f8f5 100%);
  border: 1.5px solid #d4c198;
  border-radius: 14px;
  padding: 20px 24px;
  margin-bottom: 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  box-shadow: 0 4px 20px rgba(178, 143, 85, 0.09);
  animation: fadeIn 0.3s ease;
}
.cert-seal-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: #123c33;
  color: #f7eedb;
  display: grid;
  place-items: center;
  flex: none;
  box-shadow: 0 4px 12px rgba(18, 60, 51, 0.22);
}
.cert-seal-icon .lucide {
  width: 26px;
  height: 26px;
}
.cert-banner-info h3 {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 700;
  color: #123c33;
  margin: 0 0 4px;
}
.cert-banner-info p {
  font-size: 12.5px;
  color: #4a6157;
  margin: 0;
  line-height: 1.5;
}
.cert-banner-actions {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-wrap: wrap;
}

/* Public Verification Page & Sheet */
.verification-page {
  max-width: 860px;
  margin: 0 auto;
  padding: 40px 20px 80px;
  animation: fadeIn 0.25s ease;
}
.verification-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 26px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
  gap: 16px;
  flex-wrap: wrap;
}
.certificate-sheet {
  background: #ffffff;
  border: 1px solid #d5dfd8;
  border-radius: 16px;
  box-shadow: 0 16px 48px rgba(18, 60, 51, 0.08);
  padding: 46px 52px;
  position: relative;
  overflow: hidden;
}
.certificate-sheet:before {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1.5px solid #d4c198;
  border-radius: 10px;
  pointer-events: none;
}
.cert-crest {
  width: 60px;
  height: 60px;
  border-radius: 16px;
  background: #123c33;
  color: #f7eedb;
  display: grid;
  place-items: center;
  margin: 0 auto 14px;
  box-shadow: 0 6px 18px rgba(18, 60, 51, 0.25);
}
.cert-crest .lucide {
  width: 32px;
  height: 32px;
}
.cert-header {
  text-align: center;
  margin-bottom: 28px;
}
.cert-header h2 {
  font-family: var(--font-serif);
  font-size: 27px;
  color: #123c33;
  margin: 8px 0;
  letter-spacing: -0.025em;
}
.cert-number {
  font-size: 13px;
  color: #4b6358;
}
.cert-number strong {
  font-family: var(--font-mono);
  color: #123c33;
  letter-spacing: 0.04em;
}
.cert-preamble {
  font-size: 13.5px;
  color: #40564e;
  text-align: center;
  max-width: 620px;
  margin: 0 auto 22px;
  line-height: 1.65;
}
.cert-body-box {
  background: #fbfdfc;
  border: 1px solid #e1e9e4;
  border-radius: 10px;
  padding: 22px 26px;
  margin-bottom: 28px;
}
.cert-field {
  margin-bottom: 15px;
}
.cert-field:last-child {
  margin-bottom: 0;
}
.cert-label {
  display: block;
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 750;
  color: #6a8277;
  margin-bottom: 4px;
}
.cert-title {
  font-family: var(--font-serif);
  font-size: 18px;
  color: #123c33;
  line-height: 1.45;
  margin: 0;
}
.cert-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 24px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px dashed #dbe5e0;
}
.cert-hash {
  display: block;
  font-family: var(--font-mono);
  font-size: 11px;
  color: #2b5644;
  background: #edf4ef;
  padding: 6px 9px;
  border-radius: 6px;
  word-break: break-all;
  border: 1px solid #d5e4dc;
}
.cert-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 22px;
  border-top: 1px solid #eef3f0;
  gap: 20px;
  flex-wrap: wrap;
}
.cert-signature-block {
  display: flex;
  align-items: center;
  gap: 16px;
}
.cert-stamp {
  width: 76px;
  height: 76px;
  border: 2px dashed #b28f55;
  border-radius: 50%;
  padding: 4px;
  display: grid;
  place-items: center;
  flex: none;
}
.stamp-inner {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #fdfaf3;
  border: 1px solid #b28f55;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #8c6a34;
  line-height: 1.1;
}
.stamp-inner span {
  font-size: 7px;
  letter-spacing: 0.08em;
  font-weight: 800;
}
.stamp-inner strong {
  font-size: 7.5px;
  font-weight: 900;
  color: #123c33;
}
.stamp-inner small {
  font-size: 6.5px;
  color: #2c7155;
  font-weight: 700;
}
.cert-signer strong {
  display: block;
  font-size: 13px;
  color: #123c33;
}
.cert-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

/* Findings Filter Chips & Workspace Mobile Tabs */
.filter-row {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  background: #f9fbf9;
  border-bottom: 1px solid var(--line);
  overflow-x: auto;
}
.chip {
  appearance: none;
  border: 1px solid var(--line);
  background: #ffffff;
  color: var(--muted);
  font-size: 11px;
  font-weight: 650;
  padding: 5px 12px;
  border-radius: 20px;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s ease;
}
.chip:hover {
  background: var(--soft);
  color: var(--forest);
  border-color: #bad3c2;
}
.chip.active {
  background: var(--forest);
  color: #ffffff;
  border-color: var(--forest);
}
.workspace-tabs {
  display: none;
  gap: 8px;
  margin-bottom: 14px;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 900px) {
  .workspace-tabs {
    display: flex;
  }
  .workspace.view-doc .findings-panel {
    display: none;
  }
  .workspace.view-findings .viewer {
    display: none;
  }
  .certificate-sheet {
    padding: 32px 24px;
  }
  .certificate-banner {
    flex-direction: column;
    align-items: flex-start;
  }
  .cert-grid {
    grid-template-columns: 1fr;
  }
}

/* Watermark & Layering */
.cert-watermark {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 320px;
  height: 320px;
  opacity: 0.035;
  pointer-events: none;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cert-watermark svg {
  width: 100%;
  height: 100%;
  color: var(--pine);
}
.cert-inner {
  position: relative;
  z-index: 1;
}

/* Settings Grid & Role Layouts */
.settings-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  align-items: start;
}
.settings-grid .full-span {
  grid-column: 1 / -1;
}
@media (max-width: 900px) {
  .settings-grid {
    grid-template-columns: 1fr;
  }
}

/* Status Indicators & Form Hints */
.status-indicator {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 11.5px;
  font-weight: 700;
  color: #1e6345;
  background: #e8f4ec;
  padding: 5px 12px;
  border-radius: 20px;
  border: 1px solid #cce5d4;
}
.status-indicator .dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #28a745;
  box-shadow: 0 0 0 2px rgba(40, 167, 69, 0.2);
}
.form-hint {
  font-size: 11.5px;
  color: #72887a;
  margin-top: 5px;
  line-height: 1.45;
}

/* Polished Finding Cards */
.finding {
  padding: 20px 22px;
  border-bottom: 1px solid #edf2ee;
  transition: background 0.15s ease;
}
.finding:hover {
  background: #fbfdfc;
}
.finding blockquote {
  border-left: 3px solid #388463;
  border-radius: 0 8px 8px 0;
  margin: 12px 0;
  padding: 10px 14px;
  background: #f6faf7;
  font-size: 12px;
  line-height: 1.65;
  color: #3b5648;
  font-style: italic;
}
.finding-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #edf2ee;
}

@media (max-width: 520px) {
  #toast-root {
    bottom: 16px;
    right: 14px;
    left: 14px;
  }
  .toast {
    min-width: 0;
    max-width: 100%;
  }
}

@media print {
  .sidebar, .topbar, .heading-actions, .no-print, #toast-root, #modal-root {
    display: none !important;
  }
  .layout, body, html {
    background: #fff !important;
    display: block !important;
  }
  .main-content {
    padding: 0 !important;
    max-width: 100% !important;
  }
  .certificate-sheet {
    box-shadow: none !important;
    border: 1px solid #999 !important;
    padding: 30px !important;
  }
}

/* Keyboard, mobile navigation, dan hasil pencarian. */
[hidden]{display:none!important}
.sidebar :focus-visible{outline-color:#fff!important;outline-offset:3px!important}
#project-filter-empty{border-top:1px solid var(--line);padding:32px 18px}
@media(max-width:860px){.sidebar:not(.open){visibility:hidden;pointer-events:none}.sidebar.open{visibility:visible}}
