:root{--ink:#182a41;--sub:#728199;--bg:#f3f6fa;--white:#fff;--line:#e5ebf1;--navy:#14243a;--navy2:#233851;--teal:#159b8e;--teal-dark:#0b7f76;--pale:#eaf8f5;--orange:#e6a046;--red:#d75060;--radius:14px;--shadow:0 5px 24px rgba(22,43,69,.055)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{text-decoration:none;color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,"DM Sans",sans-serif}h1{font-size:27px;letter-spacing:-.8px;line-height:1.2}h2{font-size:18px;letter-spacing:-.3px}small,.muted{color:var(--sub)}:focus-visible{outline:3px solid rgba(21,155,142,.35);outline-offset:2px}
.initial-loading{height:100vh;display:flex;align-items:center;justify-content:center;gap:16px;color:var(--sub)}.spinner{border:3px solid #d4e5e7;border-top-color:var(--teal);height:28px;width:28px;border-radius:50%;animation:spin 700ms linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.login-page{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:#fff}.login-showcase{background:radial-gradient(ellipse at 20% 80%,#20746e 0,transparent 42%),radial-gradient(ellipse at 80% 15%,#294e71 0,transparent 48%),linear-gradient(145deg,#122740,#10243a);color:#fff;padding:64px 8vw 55px 7vw;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.brand{display:flex;align-items:center;gap:12px;font-size:20px;font-family:Manrope,sans-serif;font-weight:800;letter-spacing:.3px}.brand-glyph{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#3bc6b1,#159b8e);display:grid;place-items:center;color:white;font-size:22px;box-shadow:0 6px 18px #0b201b33}.brand small{font-size:10px;letter-spacing:2.2px;font-weight:700;color:#a4c6c7;display:block}.login-showcase h1{font-size:clamp(35px,4vw,62px);letter-spacing:-2px;line-height:1.08;max-width:600px}.login-showcase p{line-height:1.8;color:#c7d4e3;max-width:470px;font-size:16px}.feature-dots{display:flex;gap:10px;margin-top:34px}.feature-dots span{border:1px solid #ffffff30;border-radius:24px;padding:9px 13px;font-size:12px;color:#dce9e9}.showcase-foot{font-size:12px;color:#93b6bb}.login-form-section{display:flex;align-items:center;justify-content:center;padding:40px}.login-card{width:min(400px,100%)}.eyebrow{color:var(--teal-dark);letter-spacing:2px;text-transform:uppercase;font-size:11px;font-weight:800}.login-card h2{font-size:30px;letter-spacing:-1px;margin:10px 0 9px}.login-card>p{color:var(--sub);line-height:1.7;margin-bottom:28px}.form-group{display:flex;flex-direction:column;gap:7px;margin-bottom:17px}.form-group label{font-size:12px;font-weight:700;color:#485b70}.form-group .hint{font-size:11px;color:var(--sub)}.form-group input,.form-group select,.form-group textarea,.search-input,.select-inline{width:100%;border:1px solid #dce4ed;background:#fff;color:var(--ink);padding:11px 13px;outline:none;border-radius:9px;min-height:42px;transition:border .15s,box-shadow .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus,.search-input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #159b8e17}.form-group textarea{min-height:100px;resize:vertical}.form-group input[type=checkbox]{width:17px;min-height:17px;accent-color:var(--teal)}.btn{border:1px solid transparent;border-radius:9px;min-height:39px;padding:9px 15px;font-weight:700;font-size:12.5px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;transition:all .15s}.btn-primary{background:var(--teal);color:#fff}.btn-primary:hover{background:var(--teal-dark)}.btn-light{background:white;border-color:var(--line);color:#536379}.btn-light:hover{border-color:#aabac9;background:#f6fafc}.btn-subtle{background:#f4f7fa;color:#54657b}.btn-danger{background:#fff0f1;color:#a83443;border-color:#f4dadd}.btn-block{width:100%}.login-help{font-size:12px;color:var(--sub);margin-top:20px;line-height:1.8}.error-box{padding:12px 14px;background:#fff1f2;border:1px solid #ffcdd2;border-radius:10px;color:#a92b3c;font-size:13px;margin:14px 0}.success-box{background:#e8f7f3;border:1px solid #bde7dc;color:#197e71;border-radius:10px;padding:12px 14px;font-size:12px}
.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--navy);color:#c9d5e2;padding:25px 16px 16px;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .brand{padding:3px 10px 28px;color:white}.sidebar .brand-glyph{width:33px;height:33px;font-size:19px;border-radius:9px}.sidebar .brand small{font-size:8px;letter-spacing:1.7px}.nav-label{text-transform:uppercase;letter-spacing:1.7px;font-size:10px;font-weight:800;color:#718ba2;padding:16px 15px 9px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:none;color:#a9bacb;padding:11px 14px;border-radius:9px;font-weight:600;font-size:12.5px;transition:all .15s}.nav-item svg{width:18px;height:18px;opacity:.86;flex-shrink:0}.nav-item:hover{background:#243c55;color:#fff}.nav-item.active{background:#244f5b;color:#dbfff8;box-shadow:inset 3px 0 0 #36c9b5}.nav-item.active svg{color:#42d0bd}.sidebar-footer{margin-top:auto;padding-top:22px}.tenant-small{display:flex;align-items:center;gap:10px;padding:12px;background:#20354b;border:1px solid #ffffff13;border-radius:12px}.tenant-avatar{background:#1c736d;border:1px solid #35a79a;display:grid;place-items:center;height:35px;width:35px;border-radius:9px;color:white;font-weight:800;flex-shrink:0}.tenant-small strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#e9f5f5;max-width:140px}.tenant-small small{font-size:10px;color:#93aabd}
.workspace{min-width:0}.topbar{height:76px;background:#fff;border-bottom:1px solid #e7edf3;display:flex;align-items:center;justify-content:space-between;padding:0 38px}.breadcrumb{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--sub)}.breadcrumb strong{color:#31445d;font-weight:700}.top-right{display:flex;gap:16px;align-items:center}.top-user{display:flex;gap:9px;align-items:center;border-left:1px solid var(--line);padding-left:17px}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#e9f3f6;color:#237982;font-weight:800;font-size:12px}.top-user strong{display:block;font-size:12px}.top-user small{font-size:11px}.page{padding:34px 38px 60px;max-width:1640px;margin:0 auto}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:25px}.page-heading h1{margin:6px 0 8px}.page-heading p{font-size:13px;color:var(--sub);line-height:1.7;margin:0}.heading-actions{display:flex;align-items:center;gap:10px}.label-green{color:var(--teal-dark)}.date-label{font-weight:700;letter-spacing:1px;font-size:10px;text-transform:uppercase;color:var(--teal-dark)}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:23px}.metric{background:#fff;padding:22px;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);min-height:147px}.metric-head{display:flex;align-items:center;justify-content:space-between}.metric-label{font-size:12px;color:var(--sub);font-weight:700}.metric-icon{width:37px;height:37px;background:#e9f8f5;border-radius:10px;display:grid;place-items:center;color:#168a80}.metric-icon svg{width:19px;height:19px}.metric-value{font-family:Manrope,sans-serif;font-weight:800;letter-spacing:-1.4px;font-size:33px;margin-top:15px;line-height:1.15}.metric-footer{color:#91a0b0;font-size:11px;margin-top:9px}.dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:17px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);min-width:0}.card h2{margin:0;font-size:15px}.card-title{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:22px}.card-title small{font-size:11px}.badge{display:inline-flex;border-radius:20px;padding:4px 10px;background:#edf2f7;color:#5d7085;font-size:10.5px;font-weight:800}.badge.green{background:#e2f6ef;color:#127c65}.badge.orange{background:#fff1dc;color:#a46f21}.badge.red{background:#fff0f2;color:#b84454}.badge.blue{background:#eaf1fe;color:#466bb2}.pipeline-list{display:flex;flex-direction:column;gap:17px}.pipeline-row{display:grid;grid-template-columns:100px 1fr 20px;gap:12px;align-items:center;font-size:12px}.pipeline-row .bar{height:8px;border-radius:10px;background:#edf2f6;overflow:hidden}.pipeline-row .bar span{height:100%;display:block;background:linear-gradient(90deg,#19a99b,#70c7b5);border-radius:10px}.pipeline-row .count{font-weight:800;text-align:right}.item-list{display:flex;flex-direction:column;gap:0}.item-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 0;border-top:1px solid #eff2f5}.item-row:first-child{border-top:none;padding-top:0}.item-row strong{font-size:12px;display:block}.item-row small{font-size:11px;display:block;margin-top:5px}.empty{padding:48px 20px;text-align:center;color:#7a8da0;font-size:13px}.empty-icon{font-size:30px;margin-bottom:13px;opacity:.6}
.list-card{padding:0;overflow:hidden}.list-toolbar{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:19px 21px;border-bottom:1px solid var(--line)}.list-toolbar .left{display:flex;gap:9px;align-items:center;flex:1}.search-wrap{position:relative;width:min(360px,100%)}.search-wrap svg{position:absolute;top:12px;left:12px;color:#8797a9;width:16px;height:16px}.search-wrap .search-input{padding-left:38px;font-size:12px}.select-inline{width:auto;min-width:132px;font-size:12px;height:42px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}thead{background:#f9fbfd}thead th{padding:15px 19px;color:#8593a5;font-size:10px;letter-spacing:1px;text-transform:uppercase;font-weight:800;white-space:nowrap;border-bottom:1px solid var(--line)}tbody td{padding:15px 19px;border-bottom:1px solid #f0f3f7;white-space:nowrap;max-width:310px;overflow:hidden;text-overflow:ellipsis}tbody tr:hover{background:#fbfdfd}tbody tr:last-child td{border-bottom:0}.cell-primary{font-weight:700;color:#263a51}.cell-muted{color:#8997a8}.action-row{display:flex;gap:8px;justify-content:flex-end}.mini-action{border:1px solid #e2e9ef;background:#fff;border-radius:7px;padding:6px 10px;font-size:11px;color:#53667c;font-weight:700}.mini-action:hover{border-color:#9cb2b4;color:#096f66}.pagination{padding:15px 21px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:var(--sub)}
.modal-overlay{position:fixed;inset:0;background:rgba(12,29,48,.55);backdrop-filter:blur(3px);display:flex;justify-content:flex-end;z-index:100}.modal-panel{width:min(570px,100%);height:100vh;overflow:auto;background:#fff;box-shadow:-12px 0 50px #0b17232f;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:26px 30px;border-bottom:1px solid var(--line)}.modal-header h2{margin:5px 0 0;font-size:21px}.modal-close{border:0;background:#f2f5f7;border-radius:8px;width:32px;height:32px;font-size:20px;color:#63748a}.modal-form{padding:25px 30px 95px;flex:1;overflow:auto}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 15px}.form-group.wide{grid-column:1/-1}.section-heading{font-size:12px;font-weight:800;color:#3d5568;margin:20px 0 15px;border-top:1px solid var(--line);padding-top:20px}.modal-foot{position:sticky;bottom:0;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:16px 30px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -8px 20px #fff}.notice{font-size:12px;line-height:1.6;border-radius:9px;padding:12px 14px;background:#f0f6fa;color:#5e7387;margin-bottom:18px}.notice strong{color:#284558}
.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.module-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:23px;display:flex;flex-direction:column;gap:12px}.module-card .module-symbol{width:43px;height:43px;background:#e8f8f5;color:#168b80;display:grid;place-items:center;border-radius:12px}.module-card h3{font-size:15px;margin:3px 0 0}.module-card p{font-size:12px;color:var(--sub);line-height:1.7;flex:1;margin:0}.module-card .status-line{display:flex;justify-content:space-between;align-items:center}.users-grid{display:grid;gap:15px}.user-row{border:1px solid var(--line);background:#fff;border-radius:12px;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px}.user-person{display:flex;align-items:center;gap:12px}.audit-row{display:grid;grid-template-columns:100px 110px 1fr 170px;gap:10px;padding:13px 20px;border-bottom:1px solid var(--line);font-size:11px;align-items:center}.audit-row:last-child{border-bottom:0}.audit-head{background:#f7fafc;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:#8496a7}.audit-row code{font-size:10px;background:#f4f6fa;color:#536678;padding:4px;border-radius:4px;max-width:100%;text-overflow:ellipsis;overflow:hidden}.toast-container{position:fixed;bottom:22px;right:22px;z-index:120;display:flex;flex-direction:column;gap:8px}.toast{background:#18384b;color:#fff;border-radius:10px;padding:13px 17px;min-width:260px;max-width:420px;box-shadow:0 9px 34px #152a4433;font-size:12px;line-height:1.5;border-left:4px solid #3bc4b3}.toast.error{background:#583040;border-left-color:#ee7181}.mobile-nav{display:none}
@media(max-width:1150px){.page{padding:27px}.topbar{padding:0 27px}.metrics{grid-template-columns:repeat(2,1fr)}.module-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.login-page{grid-template-columns:1fr}.login-showcase{min-height:auto;padding:32px 28px}.login-showcase h1{font-size:34px;margin:38px 0 12px}.login-showcase .feature-dots,.showcase-foot{display:none}.login-form-section{padding:50px 28px}.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;min-height:auto;padding:15px;overflow:visible}.sidebar .brand{padding:0}.sidebar>nav,.sidebar-footer{display:none}.mobile-nav{display:flex;gap:8px;overflow-x:auto;padding-top:13px}.mobile-nav .nav-item{width:auto;flex-shrink:0;padding:9px 10px}.topbar{height:61px;padding:0 18px}.top-user strong{display:none}.page{padding:22px 17px}.page-heading{flex-wrap:wrap}.page-heading h1{font-size:22px}.dashboard-grid,.module-grid{grid-template-columns:1fr}.metrics{gap:10px}.metric{min-height:115px;padding:16px}.metric-value{font-size:28px}.top-right{gap:8px}.top-user{padding-left:8px}.top-user small{display:none}.list-toolbar{flex-wrap:wrap}.list-toolbar .left{width:100%}.search-wrap{width:100%}.form-grid{grid-template-columns:1fr}.modal-form{padding:22px}.modal-header{padding:22px}.modal-foot{padding:15px 22px}}
/* v0.3 additional UI */
.v03-panel{max-width:760px;max-height:92vh;overflow-y:auto}
.v03-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:14px;margin-top:18px}
.v03-card{background:#fff;border:1px solid #e1e8ed;border-radius:14px;padding:19px;display:flex;flex-direction:column;gap:13px;box-shadow:0 2px 10px #192f3a08}
.v03-card p{font-size:13px;color:#52677d;line-height:1.5;margin:0}
.v03-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.v03-card-top strong{font-size:14px;line-height:1.4}
.v03-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto}
.v03-field-row{background:#f8fafc;border:1px solid #dfe8ef;border-radius:12px;padding:14px;margin-bottom:12px}
.v03-field-row .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.v03-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#52677d;margin-top:5px}
.v03-row input[type=checkbox],.v03-check input{width:auto;margin-right:6px}
.v03-submission{border:1px solid #dce6ec;border-radius:12px;background:#fff;padding:16px}
.v03-answer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:15px 0 0}
.v03-answer-grid dt{color:#6d8293;font-size:11px;margin-bottom:5px}
.v03-answer-grid dd{margin:0;font-size:14px;word-break:break-word}
.v03-check{display:flex;align-items:center;grid-column:1 / -1;font-size:13px}
@media(max-width:650px){.v03-field-row .form-grid,.v03-answer-grid{grid-template-columns:1fr}.v03-grid{grid-template-columns:1fr}}
