:root{--blue:#427bca;--blue-hover:#3569b5;--blue-dark:#1d3461;--orange:#e9963e;--gray:#a9a9a9;--bg:#f4f6f9;--text:#172033;--danger:#c43d4b;--green:#2f8f5b;--white:#fff;--border:#dfe5ee;--soft:#f8fafc}
*{box-sizing:border-box}body{margin:0;font-family:Montserrat,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}a{color:var(--blue);text-decoration:none}a:hover{color:var(--blue-hover)}.layout{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:var(--blue-dark);color:#fff;padding:28px 20px;position:sticky;top:0;height:100vh;overflow:auto}.brand{font-weight:800;font-size:23px;margin-bottom:34px}.brand span{color:var(--orange)}.brand-sub{font-size:12px;font-weight:400;margin-top:4px;color:#aebbd1}.nav a{display:block;color:#dbe5f7;padding:12px 14px;border-radius:8px;margin:4px 0}.nav a:hover,.nav a.active{background:rgba(255,255,255,.1);color:#fff}.nav-divider{height:1px;background:rgba(255,255,255,.12);margin:15px 10px}.main{padding:32px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;gap:20px}.topbar h1{margin:0;font-size:28px}.userbox{font-size:14px;color:#536078;white-space:nowrap}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.mini-cards{margin-top:18px}.card,.panel{background:#fff;border:1px solid var(--border);border-radius:14px;padding:22px;box-shadow:0 4px 14px rgba(20,40,80,.04)}.metric-card{color:inherit;transition:transform .12s ease,box-shadow .12s ease}.metric-card:hover{color:inherit;transform:translateY(-1px);box-shadow:0 8px 20px rgba(20,40,80,.08)}.metric{font-size:30px;font-weight:700;margin-top:8px}.metric.small{font-size:20px;line-height:1.25}.metric-foot{margin-top:6px;color:#778399;font-size:12px}.muted{color:#778399}.small-text{font-size:12px}.panel{margin-top:20px}.panel h3{margin:0 0 16px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}.panel-heading h3{margin:0}.btn{display:inline-block;border:0;border-radius:8px;padding:11px 17px;background:var(--blue);color:#fff;font:inherit;font-weight:600;cursor:pointer}.btn:hover{background:var(--blue-hover);color:#fff}.btn.secondary{background:#eef3fa;color:var(--blue-dark)}.btn.secondary:hover{background:#e0e9f6}.btn.danger{background:var(--danger)}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #ccd5e2;border-radius:8px;background:#fff;font:inherit;color:var(--text)}textarea{resize:vertical;line-height:1.5}.form-row{margin-bottom:15px}.form-row label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.form-stack{margin-top:18px}.auth{min-height:100vh;display:grid;grid-template-columns:40% 60%}.auth-side{background:var(--blue-dark);color:#fff;padding:54px;display:flex;flex-direction:column;justify-content:space-between}.auth-main{display:flex;align-items:center;justify-content:center;padding:32px}.auth-box{width:min(620px,100%)}.flash{padding:12px 14px;border-radius:8px;margin:12px 0;background:#eef3fa;line-height:1.5}.flash.error{background:#fdebed;color:#9f2734}.flash.success{background:#e8f5ee;color:#246c49}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid #edf0f5;font-size:14px;vertical-align:middle}th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#667085;white-space:nowrap}.badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.badge.green{background:#e7f5ed;color:#2d7d50}.badge.orange{background:#fff2e1;color:#9a5a11}.badge.gray{background:#eef1f5;color:#596579}.badge.blue{background:#e8f0fb;color:#3567aa}.badge.red{background:#fdebed;color:#a92e3b}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f2f4f7;padding:2px 5px;border-radius:4px}.hash{word-break:break-all;font-size:11px}.toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:4px}.toolbar-form{display:grid;grid-template-columns:minmax(260px,1fr) 220px auto;gap:10px;width:100%}.toolbar-form.wide{grid-template-columns:minmax(220px,1fr) 200px 180px 190px auto}.add-panel summary{cursor:pointer;font-weight:700;color:var(--blue-dark);list-style:none}.add-panel summary::-webkit-details-marker{display:none}.add-panel[open] summary{margin-bottom:20px}.strong-link{font-weight:600;color:var(--blue-dark)}.subline{font-size:12px;color:#778399;margin-top:4px;line-height:1.4}.right{text-align:right}.inline-form{display:inline}.link-danger{border:0;background:none;color:var(--danger);cursor:pointer;padding:4px;font:inherit;font-size:12px}.detail-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:4px}.backlink{font-size:13px}.detail-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.detail-actions{display:flex;gap:8px;flex-wrap:wrap}.sep{border:0;border-top:1px solid #edf0f5;margin:22px 0}.check-row{display:flex;gap:10px;align-items:flex-start;background:#f8fafc;border:1px solid var(--border);padding:12px;border-radius:8px;margin:12px 0}.check-row input{width:auto;margin-top:2px}.check-row.compact{background:transparent;border:0;padding:0;margin:8px 0 15px}.checks-inline{display:flex;gap:24px;flex-wrap:wrap;margin:6px 0 16px}.data-list{display:grid;grid-template-columns:150px 1fr;gap:10px 16px;margin:0}.data-list dt{font-weight:600;color:#5e6b80}.data-list dd{margin:0}.compliance-list{display:grid;gap:10px}.compliance-item{border:1px solid var(--border);border-radius:10px;background:#fff}.compliance-item summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 16px;list-style:none}.compliance-item summary::-webkit-details-marker{display:none}.compliance-body{padding:0 16px 16px;border-top:1px solid #edf0f5;padding-top:16px}.inline-grid{display:grid;grid-template-columns:minmax(240px,2fr) minmax(100px,.6fr) auto;gap:12px;align-items:end}.button-row{display:flex;align-items:flex-end}.activity-list{display:grid}.activity-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #edf0f5;line-height:1.45}.activity-row:last-child{border-bottom:0}.activity-row span{white-space:nowrap;color:#778399;font-size:12px}
@media(max-width:1180px){.cards{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}.toolbar-form.wide{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:960px){.layout{grid-template-columns:1fr}.sidebar{display:none}.auth{grid-template-columns:1fr}.auth-side{display:none}.main{padding:22px}.toolbar-form,.toolbar-form.wide{grid-template-columns:1fr 1fr}.detail-head{align-items:flex-start;flex-direction:column}.detail-actions{width:100%}}
@media(max-width:700px){.cards,.grid-2,.grid-3{grid-template-columns:1fr}.main{padding:16px}.topbar{align-items:flex-start;flex-direction:column}.userbox{white-space:normal}.toolbar-form,.toolbar-form.wide,.inline-grid{grid-template-columns:1fr}.detail-actions .btn{flex:1;text-align:center}.data-list{grid-template-columns:1fr}.data-list dd{padding-bottom:8px}.compliance-item summary{align-items:flex-start;flex-direction:column}.activity-row{flex-direction:column;gap:4px}}
.row-overdue td{background:#fff8f8}.overdue-text{color:var(--danger);font-weight:600}.danger-number{color:var(--danger)}
.task-list{display:grid}.task-list-item{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid #edf0f5;color:inherit}.task-list-item:last-child{border-bottom:0}.task-list-item:hover{color:inherit}.task-title{font-weight:600;color:var(--blue-dark);line-height:1.4}.task-list-meta{display:flex;align-items:center;gap:10px;white-space:nowrap;font-size:12px}.empty-good{background:#edf8f2;color:#327553;border:1px solid #d7eedf;border-radius:10px;padding:14px 16px}
.comment-list{display:grid;gap:12px}.comment{border:1px solid var(--border);background:var(--soft);border-radius:10px;padding:14px 16px}.comment-head{display:flex;justify-content:space-between;gap:16px;margin-bottom:8px}.comment-head span{color:#778399;font-size:12px;white-space:nowrap}.comment-body{line-height:1.6;white-space:normal}
.timeline{position:relative;display:grid;gap:0;margin-top:16px}.timeline-item{display:grid;grid-template-columns:18px 1fr;gap:12px;position:relative;padding:0 0 22px}.timeline-item:not(:last-child):before{content:"";position:absolute;left:5px;top:12px;bottom:-2px;width:2px;background:#e3e9f2}.timeline-dot{width:12px;height:12px;border-radius:50%;background:var(--blue);margin-top:5px;position:relative;z-index:1;box-shadow:0 0 0 4px #eef3fa}.timeline-content{min-width:0;line-height:1.5}.timeline-content p{margin:10px 0 0}.timeline-links{display:flex;gap:8px 18px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:#667085}
.overview-inline{display:flex;gap:18px 34px;flex-wrap:wrap;color:#667085}.overview-inline b{color:var(--blue-dark);font-size:18px;margin-right:4px}.compact-panel{padding-top:18px;padding-bottom:18px}
@media(max-width:700px){.task-list-item{align-items:flex-start;flex-direction:column}.task-list-meta{white-space:normal;flex-wrap:wrap}.comment-head{flex-direction:column;gap:4px}.timeline-links{flex-direction:column;gap:4px}}
.mail-route{margin-top:8px;padding:8px 10px;background:#f7f9fc;border-radius:8px;font-size:12px;color:#4f5f78;line-height:1.55}.mail-cell{min-width:210px}.mail-body{white-space:pre-wrap;background:#f8fafc;border:1px solid #e8edf4;border-radius:10px;padding:16px;line-height:1.65;max-height:520px;overflow:auto}.email-fields{background:#f8fafc;border:1px solid #e8edf4;border-radius:10px;padding:14px;margin-bottom:14px}.nowrap{white-space:nowrap}.message-view{display:grid;gap:16px}
