:root{
  --navy:#0d2f5f;--navy-2:#123f6f;--blue:#2e7bc4;--blue-2:#1669c7;--blue-soft:#e9f3ff;
  --green:#1f9345;--green-soft:#e8f7ed;--gold:#d7a31a;--gold-soft:#fff6df;--red:#c63d3d;--red-soft:#fff0f0;
  --ink:#15233d;--muted:#64748b;--muted-2:#94a3b8;--line:#dce5ef;--line-2:#e8eef5;--bg:#f4f7fb;--surface:#fff;
  --shadow:0 8px 24px rgba(21,35,61,.07);--radius:12px;--radius-sm:8px;--sidebar:192px;--topbar:72px;
  --font:"Segoe UI",Arial,Helvetica,sans-serif
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.45}a{color:inherit}button,input,select,textarea{font:inherit}.icon{display:inline-block;vertical-align:middle;flex:none}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);z-index:40;background:linear-gradient(180deg,#104c78 0%,#0d3f68 70%,#0a3559 100%);color:#fff;padding:18px 10px 16px;display:flex;flex-direction:column;box-shadow:3px 0 18px rgba(13,47,95,.08)}.brand-block{display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px;padding:2px 8px 14px;border-bottom:1px solid rgba(255,255,255,.25)}.brand-seal{width:84px;height:84px;border-radius:50%;object-fit:cover;background:#fff;border:2px solid rgba(255,255,255,.75)}.brand-block strong{display:block;font-size:18px;line-height:1.1}.brand-block span{display:block;font-size:12px;margin-top:4px;color:#d9e9f6}.org-caption{text-align:center;font-size:11px;line-height:1.45;color:#d8e8f4;padding:11px 8px 18px}.side-nav{display:flex;flex-direction:column;gap:5px}.side-link{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:8px;text-decoration:none;color:#f6fbff;font-weight:500}.side-link:hover{background:rgba(255,255,255,.10)}.side-link.active{background:linear-gradient(90deg,#2e7bc4,#2268aa);box-shadow:inset 0 0 0 1px rgba(255,255,255,.10)}.side-link .icon{width:20px}.sidebar-footer{margin-top:auto;padding:18px 10px 6px;color:#eef6fd;font-size:12px}.sidebar-footer em{display:block;line-height:1.45}.mountain-mark{height:44px;margin:0 -10px 9px;opacity:.22;background:linear-gradient(135deg,transparent 20%,#fff 20% 28%,transparent 28% 40%,#fff 40% 50%,transparent 50%)}.brand-line{display:grid;grid-template-columns:1fr 1fr 1fr;height:3px;margin-top:10px;gap:2px}.brand-line i:nth-child(1){background:#2e8ce5}.brand-line i:nth-child(2){background:#1f9345}.brand-line i:nth-child(3){background:#d7a31a}.app-main{min-height:100vh;margin-left:var(--sidebar);display:flex;flex-direction:column}.app-topbar{height:var(--topbar);position:sticky;top:0;z-index:35;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:0 24px}.global-search{margin-left:auto;width:min(470px,42vw);height:42px;display:flex;align-items:center;gap:9px;padding:0 13px;border:1px solid var(--line);background:#f8fbfe;border-radius:8px;color:#45637d}.global-search input{border:0;outline:0;background:transparent;width:100%;color:var(--ink)}.topbar-actions{display:flex;align-items:center;gap:12px}.icon-button{position:relative;width:42px;height:42px;border:0;border-radius:9px;background:transparent;color:var(--navy);display:grid;place-items:center;cursor:pointer}.icon-button:hover{background:#eff5fb}.notification-count{position:absolute;right:4px;top:3px;background:#e33b3b;color:#fff;font-size:10px;min-width:17px;height:17px;border-radius:50%;display:grid;place-items:center;padding:0 4px}.user-menu-wrap{position:relative}.user-chip{border:0;background:transparent;display:flex;align-items:center;gap:10px;padding:5px 6px;border-radius:9px;cursor:pointer;color:var(--navy)}.user-chip:hover{background:#eff5fb}.avatar{width:38px;height:38px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700;flex:none}.user-meta{display:flex;flex-direction:column;text-align:left;min-width:115px}.user-meta strong{font-size:13px}.user-meta small{font-size:11px;color:var(--muted);margin-top:1px}.user-popover{display:none;position:absolute;right:0;top:50px;width:235px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:8px;z-index:60}.user-popover.open{display:block}.user-popover>div{padding:9px 10px;border-bottom:1px solid var(--line-2);margin-bottom:4px}.user-popover strong,.user-popover small{display:block}.user-popover small{color:var(--muted);margin-top:2px;word-break:break-all}.user-popover a{display:flex;align-items:center;gap:8px;padding:9px 10px;text-decoration:none;border-radius:7px}.user-popover a:hover{background:#f4f7fb}.mobile-menu,.topbar-brand-mobile{display:none}.content{flex:1;padding:22px 22px 36px;max-width:1600px;width:100%;margin:0 auto}.page-footer{border-top:1px solid var(--line);background:#fff;min-height:58px;padding:16px 22px;display:flex;align-items:center;gap:12px;color:var(--muted);font-size:11px}.footer-tag{margin-left:auto;font-style:italic;color:var(--navy)}.version{color:var(--muted-2)}
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.page-head h1{font-size:27px;line-height:1.15;margin:0;color:#0b2b65;letter-spacing:-.3px}.page-head p{margin:6px 0 0;color:#52647d}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.breadcrumbs{display:flex;gap:8px;align-items:center;color:#6e8198;font-size:12px;margin-bottom:10px}.breadcrumbs a{text-decoration:none;color:var(--blue)}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px rgba(15,23,42,.02)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border-bottom:1px solid var(--line-2)}.panel-title{display:flex;align-items:center;gap:9px;font-size:16px;color:var(--navy);font-weight:700}.panel-body{padding:16px 17px}.btn{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:8px;padding:9px 13px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px}.btn:hover{background:#f6f9fc}.btn-primary{background:var(--blue-2);border-color:var(--blue-2);color:#fff}.btn-primary:hover{background:#105ba9}.btn-success{background:var(--green);border-color:var(--green);color:#fff}.btn-danger{color:var(--red);border-color:#f1c6c6}.btn-sm{padding:6px 9px;min-height:31px;font-size:12px}.btn-block{width:100%}.icon-btn-sm{width:30px;height:30px;border-radius:6px;border:0;background:transparent;color:#4b6788;cursor:pointer}.icon-btn-sm:hover{background:#eef4f9}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700;white-space:nowrap}.badge.success{background:var(--green-soft);color:#15743a}.badge.info{background:var(--blue-soft);color:#1365bc}.badge.warning{background:var(--gold-soft);color:#9b6c00}.badge.danger{background:var(--red-soft);color:#aa2c2c}.badge.muted{background:#eef2f7;color:#607087}.status-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;align-items:center;gap:13px;min-height:102px}.metric-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue)}.metric-card.green .metric-icon{background:var(--green-soft);color:var(--green)}.metric-card.gold .metric-icon{background:var(--gold-soft);color:#d19200}.metric-card h3{margin:0;font-size:12px;color:var(--navy)}.metric-value{font-size:27px;line-height:1.1;font-weight:750;margin-top:4px;color:#0d2448}.metric-sub{font-size:11px;color:var(--muted);margin-top:3px}.dashboard-grid{display:grid;grid-template-columns:1.3fr .85fr .75fr;gap:12px;margin-bottom:14px}.chart-card{padding:16px;min-height:265px}.chart-card h2{font-size:15px;margin:0 0 15px;color:var(--navy)}.bar-chart{height:185px;display:flex;align-items:flex-end;gap:16px;border-bottom:1px solid var(--line);padding:8px 7px 0}.bar-item{flex:1;min-width:36px;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.bar-value{font-size:11px;font-weight:700;margin-bottom:4px}.bar{width:min(46px,75%);border-radius:5px 5px 0 0;background:var(--blue);min-height:3px}.bar-item:nth-child(2n) .bar{background:var(--green)}.bar-item:nth-child(3n) .bar{background:var(--gold)}.bar-label{height:43px;padding-top:7px;text-align:center;font-size:10px;color:#52667f}.donut-wrap{display:flex;align-items:center;justify-content:center;height:190px}.donut{--p:0;width:150px;height:150px;border-radius:50%;background:conic-gradient(var(--green) calc(var(--p)*1%),#e7edf4 0);position:relative;display:grid;place-items:center}.donut:after{content:"";position:absolute;width:105px;height:105px;border-radius:50%;background:#fff}.donut-center{position:relative;z-index:1;text-align:center}.donut-center strong{font-size:28px;color:var(--navy);display:block}.donut-center span{font-size:10px;color:var(--muted)}.feed-tabs{display:flex;border-bottom:1px solid var(--line);padding:0 12px}.feed-tab{padding:13px 8px 10px;border:0;background:transparent;color:#667b95;font-weight:600;border-bottom:2px solid transparent}.feed-tab.active{color:var(--blue);border-color:var(--blue)}.feed-list{padding:4px 13px}.feed-item{display:grid;grid-template-columns:10px 1fr auto;gap:9px;padding:10px 0;border-bottom:1px solid var(--line-2)}.feed-item:last-child{border-bottom:0}.feed-dot{width:8px;height:8px;border-radius:50%;background:var(--green);margin-top:5px}.feed-item:nth-child(2n) .feed-dot{background:var(--blue)}.feed-item strong{font-size:12px;display:block}.feed-item small{font-size:10px;color:var(--muted)}.feed-time{font-size:10px;color:#7d91a9;white-space:nowrap}.table-panel{overflow:hidden}.table-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.search-input{min-width:220px;display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:7px;padding:7px 10px;background:#fff}.search-input input{border:0;outline:0;width:100%;background:transparent}.table-scroll{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:820px}.data-table th{background:#f3f6fa;color:#52627a;font-size:10px;text-align:left;padding:8px 10px;white-space:nowrap}.data-table td{padding:9px 10px;border-bottom:1px solid var(--line-2);font-size:12px;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafcff}.progress-inline{display:flex;align-items:center;gap:8px;min-width:100px}.progress-track{height:7px;background:#e8eef5;border-radius:999px;overflow:hidden;flex:1}.progress-fill{height:100%;background:var(--green);border-radius:inherit}.progress-fill.blue{background:var(--blue)}.progress-fill.gold{background:var(--gold)}.empty-state{text-align:center;padding:40px 18px;color:var(--muted)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field.span-2{grid-column:1/-1}.field label{font-size:11px;font-weight:700;color:#425673}.field input,.field select,.field textarea,.select-input{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 11px;color:var(--ink);outline:none}.field textarea{min-height:96px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#7ab1e9;box-shadow:0 0 0 3px #eaf4ff}.field input[disabled],.field input[readonly],.field select[disabled],.field textarea[readonly]{background:#f6f8fb;color:#52677f}.help{font-size:10px;color:var(--muted)}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.alert{border-radius:8px;padding:10px 12px;margin-bottom:14px;font-size:12px}.alert.success{background:var(--green-soft);color:#176d38}.alert.error{background:var(--red-soft);color:#982d2d}.alert.info{background:var(--blue-soft);color:#205c94}.pill-tabs{display:flex;gap:3px;border-bottom:1px solid var(--line);margin-bottom:14px;overflow:auto}.pill-tab{border:0;background:transparent;padding:10px 12px;color:#5e7088;font-weight:600;white-space:nowrap;border-bottom:3px solid transparent}.pill-tab.active{color:var(--blue);border-color:var(--blue)}
/* Board */
.cycle-head{margin-bottom:13px}.cycle-meta-line{display:flex;align-items:center;gap:12px;color:#46617e;margin-top:6px}.cycle-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin:0 -3px 14px;padding:0 3px}.cycle-tab{padding:10px 9px;text-decoration:none;color:#536a85;font-weight:600;border-bottom:3px solid transparent}.cycle-tab.active{color:var(--blue);border-color:var(--blue)}.board-summary{display:flex;gap:9px;margin-bottom:12px;overflow:auto;padding-bottom:2px}.summary-chip{min-width:142px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 13px}.summary-chip strong{display:block;font-size:20px;color:var(--navy)}.summary-chip span{font-size:10px;color:var(--muted)}.board-wrap{position:relative}.board-scroller{display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;padding:1px 2px 13px;scrollbar-color:#b8c7d6 transparent;scroll-snap-type:x proximity}.phase-column{width:292px;min-width:292px;max-width:292px;background:#f8fbfe;border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;max-height:calc(100vh - 240px);min-height:520px;scroll-snap-align:start}.phase-head{padding:12px 12px 9px;position:sticky;top:0;background:#f8fbfe;border-radius:10px 10px 0 0;z-index:2}.phase-title-row{display:flex;align-items:center;gap:8px}.phase-number{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:700}.phase-column:nth-child(2n) .phase-number{background:var(--green)}.phase-column:nth-child(3n) .phase-number{background:#d69b00}.phase-title{font-weight:700;color:var(--navy);flex:1}.phase-lock{color:#8092a8}.phase-count{font-size:10px;color:var(--muted);margin:3px 0 6px 38px}.phase-progress{margin-left:38px;display:flex;align-items:center;gap:7px}.phase-progress .progress-track{height:6px}.phase-progress small{font-size:10px;color:#59708a}.phase-cards{padding:0 8px;overflow-y:auto;flex:1}.activity-card{background:#fff;border:1px solid #d8e4ef;border-radius:9px;padding:11px;margin:0 0 8px;cursor:pointer;box-shadow:0 1px 1px rgba(20,41,76,.02)}.activity-card:hover,.activity-card.selected{border-color:#64a7eb;box-shadow:0 0 0 2px rgba(46,123,196,.10)}.activity-card-head{display:flex;align-items:flex-start;gap:6px}.activity-code{color:#0d6dd3;font-weight:800;font-size:12px}.activity-menu{margin-left:auto;color:#6f8298}.activity-title{font-weight:700;color:#122f60;margin:4px 0 9px;line-height:1.25}.activity-person{display:flex;align-items:center;gap:7px;color:#526a86;font-size:11px;margin-bottom:7px}.mini-avatar{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#e4f0fe;color:#1166b9;font-size:9px;font-weight:700}.activity-date{display:flex;gap:7px;align-items:center;font-size:10px;color:#5d7088;margin:7px 0}.activity-footer{display:flex;align-items:center;justify-content:space-between;gap:6px;border-top:1px solid #edf1f5;margin-top:8px;padding-top:8px}.activity-counters{display:flex;gap:9px;color:#657a92;font-size:10px}.phase-add{padding:7px 9px 9px}.phase-add .btn{width:100%;background:#eef5fc;border-color:transparent;color:#3678ba}.drawer-backdrop{display:none;position:fixed;inset:0;background:rgba(7,31,58,.22);z-index:69}.activity-drawer{position:fixed;right:-650px;top:0;bottom:0;width:min(625px,100vw);background:#fff;z-index:70;box-shadow:-12px 0 38px rgba(11,43,101,.16);transition:right .24s ease;display:flex;flex-direction:column}.activity-drawer.open{right:0}.drawer-backdrop.open{display:block}.drawer-header{padding:20px 24px 14px;border-bottom:1px solid var(--line)}.drawer-top{display:flex;align-items:center;gap:10px}.drawer-phase-badge{background:var(--gold-soft);color:#996700;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:700}.drawer-code{background:var(--blue-soft);color:#0d6ac6;border-radius:7px;padding:5px 9px;font-weight:800}.drawer-close{margin-left:auto}.drawer-header h2{font-size:23px;line-height:1.18;margin:14px 0 9px;color:#0b2b65}.drawer-tabs{display:flex;gap:4px;padding:0 23px;border-bottom:1px solid var(--line);overflow:auto}.drawer-tab{border:0;background:transparent;padding:12px 10px 10px;color:#526982;font-weight:600;white-space:nowrap;border-bottom:3px solid transparent}.drawer-tab.active{color:var(--blue);border-color:var(--blue)}.tab-count{display:inline-grid;place-items:center;min-width:19px;height:19px;border-radius:999px;background:#edf2f7;font-size:9px;margin-left:3px}.drawer-body{padding:18px 24px 28px;overflow-y:auto;flex:1}.drawer-panel{display:none}.drawer-panel.active{display:block}.drawer-footer{padding:13px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;background:#fff}.assignee-picker{border:1px solid var(--line);border-radius:8px;padding:8px;display:flex;gap:5px;flex-wrap:wrap;min-height:42px}.assignee-tag{display:inline-flex;align-items:center;gap:5px;background:#eff5fc;border-radius:999px;padding:4px 7px;font-size:11px}.checklist{display:flex;flex-direction:column;gap:8px}.check-item{display:flex;align-items:flex-start;gap:9px;padding:9px 10px;border:1px solid var(--line);border-radius:8px}.check-item input{margin-top:3px}.check-item.done span{text-decoration:line-through;color:#8493a6}.update-composer{border:1px solid var(--line);border-radius:9px;padding:10px;margin-bottom:14px}.update-composer textarea{width:100%;border:0;outline:0;resize:vertical;min-height:78px}.update-composer-actions{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line-2);padding-top:8px}.timeline{position:relative;padding-left:26px}.timeline:before{content:"";position:absolute;left:10px;top:8px;bottom:8px;width:2px;background:#dbe5ee}.timeline-item{position:relative;padding:0 0 18px}.timeline-dot{position:absolute;left:-22px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--blue);border:2px solid #fff;box-shadow:0 0 0 1px #c5d5e5}.timeline-item.query .timeline-dot{background:var(--gold)}.timeline-item.response .timeline-dot{background:var(--green)}.timeline-meta{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px}.timeline-meta strong{font-size:12px}.timeline-meta time{font-size:10px;color:var(--muted)}.timeline-body{background:#f7faff;border-radius:8px;padding:9px 10px;font-size:12px;color:#3d516d}.timeline-item.query .timeline-body{background:#fff7e5}.timeline-item.response .timeline-body{background:#eef9f1}.attachment-list{display:flex;flex-direction:column;gap:7px}.attachment-row{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:8px;padding:9px}.attachment-row .file-meta{flex:1;min-width:0}.attachment-row strong{font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-row small{font-size:10px;color:var(--muted)}.history-row{padding:9px 0;border-bottom:1px solid var(--line-2);font-size:11px}.history-row strong{color:#315779}.history-row small{color:var(--muted);display:block;margin-top:3px}.lock-note{display:flex;align-items:center;gap:7px;background:#f5f8fc;color:#5f7188;padding:8px 10px;border-radius:8px;font-size:10px;margin-top:8px}
.modal-backdrop{display:none;position:fixed;inset:0;background:rgba(7,31,58,.36);z-index:80;align-items:center;justify-content:center;padding:18px}.modal-backdrop.open{display:flex}.modal{background:#fff;width:min(620px,100%);max-height:90vh;overflow:auto;border-radius:13px;box-shadow:0 20px 60px rgba(7,31,58,.22)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:17px 19px;border-bottom:1px solid var(--line)}.modal-head h2{font-size:18px;margin:0;color:var(--navy)}.modal-body{padding:18px 19px}.modal-footer{padding:13px 19px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.toast-region{position:fixed;right:18px;bottom:18px;z-index:100;display:flex;flex-direction:column;gap:8px}.toast{background:#152a47;color:#fff;padding:11px 14px;border-radius:8px;box-shadow:var(--shadow);font-size:12px;max-width:330px}.toast.success{background:#176f3c}.toast.error{background:#a72f2f}
/* Login */
.auth-body{min-height:100vh;margin:0;background:linear-gradient(135deg,#0d3f68,#155f91);display:grid;place-items:center;padding:22px}.auth-card{width:min(420px,100%);background:#fff;border-radius:16px;padding:30px;box-shadow:0 24px 60px rgba(0,0,0,.22)}.auth-brand{text-align:center;margin-bottom:22px}.auth-brand img{width:92px;height:92px;border-radius:50%;object-fit:cover}.auth-brand h1{font-size:22px;color:var(--navy);margin:10px 0 3px}.auth-brand p{margin:0;color:var(--muted);font-size:12px}.auth-card .field{margin-bottom:13px}.auth-footer{text-align:center;color:#d8e8f4;font-size:11px;margin-top:17px}.auth-link{font-size:12px;color:var(--blue);text-decoration:none}.auth-row{display:flex;align-items:center;justify-content:space-between;margin-top:3px}
/* Report */
.report-cover{padding:28px}.report-title{display:flex;align-items:center;gap:18px;border-bottom:4px solid var(--gold);padding-bottom:14px}.report-title img{width:78px;height:78px;border-radius:50%}.report-title h1{margin:0;color:var(--navy);font-size:26px}.report-section{margin-top:22px}.report-section h2{font-size:17px;color:var(--navy);border-bottom:1px solid var(--line);padding-bottom:7px}.report-activity{border:1px solid var(--line);border-radius:8px;margin:10px 0;padding:12px}.report-update{margin:8px 0 0 16px;border-left:3px solid #dce8f3;padding:4px 0 4px 10px}.print-only{display:none}
@media(max-width:1180px){.dashboard-grid{grid-template-columns:1fr 1fr}.dashboard-grid>.panel:last-child{grid-column:1/-1}.cards{grid-template-columns:repeat(2,1fr)}.content{padding:18px}.phase-column{max-height:calc(100vh - 210px)}}
@media(max-width:820px){:root{--topbar:62px}.sidebar{transform:translateX(-100%);transition:transform .2s ease;width:250px;z-index:90}.sidebar.open{transform:translateX(0)}.app-main{margin-left:0}.app-topbar{padding:0 12px;gap:8px}.mobile-menu{display:grid}.topbar-brand-mobile{display:flex;align-items:center;gap:7px;font-weight:700;color:var(--navy);font-size:12px}.topbar-brand-mobile img{width:32px;height:32px;border-radius:50%}.global-search{display:none}.user-meta{display:none}.user-chip{gap:5px}.content{padding:14px 12px 28px}.page-head{flex-direction:column}.page-head h1{font-size:22px}.page-actions{width:100%}.page-actions .btn{flex:1}.cards{grid-template-columns:1fr 1fr;gap:8px}.metric-card{min-height:92px;padding:12px}.metric-icon{width:40px;height:40px}.metric-value{font-size:22px}.dashboard-grid{grid-template-columns:1fr}.dashboard-grid>.panel:last-child{grid-column:auto}.chart-card{min-height:235px}.form-grid{grid-template-columns:1fr}.field.span-2{grid-column:auto}.page-footer{flex-wrap:wrap}.footer-tag{margin-left:0;flex-basis:100%}.board-summary{margin-right:-12px}.phase-column{width:84vw;min-width:84vw;max-width:84vw;min-height:calc(100vh - 280px);max-height:calc(100vh - 230px)}.activity-drawer{width:100vw}.drawer-header{padding:17px 16px 12px}.drawer-header h2{font-size:20px}.drawer-tabs{padding:0 10px}.drawer-body{padding:15px 16px}.drawer-footer{padding:10px 14px}.cycle-tabs{overflow:auto}.data-table{min-width:760px}}
@media(max-width:520px){.cards{grid-template-columns:1fr 1fr}.metric-card{display:block}.metric-icon{width:34px;height:34px;margin-bottom:7px}.metric-card h3{font-size:10px}.metric-value{font-size:21px}.metric-sub{display:none}.topbar-brand-mobile span{display:none}.user-chip .avatar{width:34px;height:34px}.content{padding-left:10px;padding-right:10px}.page-head h1{font-size:20px}.cycle-meta-line{font-size:11px;flex-wrap:wrap}.phase-column{width:88vw;min-width:88vw;max-width:88vw}.drawer-top{align-items:flex-start}.drawer-header h2{font-size:19px}.form-actions{position:sticky;bottom:0;background:#fff;padding-top:8px}.auth-card{padding:24px 20px}.auth-brand img{width:78px;height:78px}}
@media print{.sidebar,.app-topbar,.page-footer,.page-actions,.no-print{display:none!important}.app-main{margin:0}.content{padding:0;max-width:none}.panel{box-shadow:none;border-color:#bbb}.print-only{display:block}.report-cover{padding:0}.report-activity{break-inside:avoid}.report-section{break-inside:avoid-page}}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr!important}}

/* v1.0.1 multi-role administration */
.role-check-grid{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:5px 10px;min-width:285px}
.role-check{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);white-space:nowrap}
.role-check input{accent-color:var(--blue)}
.role-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.role-picker-item{display:flex;align-items:flex-start;gap:8px;border:1px solid var(--line);border-radius:8px;padding:9px;background:#fff;cursor:pointer}
.role-picker-item:has(input:checked){border-color:var(--blue);background:#f2f7fc}
.role-picker-item input{margin-top:3px;accent-color:var(--blue)}
.role-picker-item span{display:flex;flex-direction:column;gap:2px}
.role-picker-item strong{font-size:12px;color:var(--ink)}
.role-picker-item small{font-size:10.5px;color:var(--muted-2);line-height:1.3}
.user-role-table .row-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:170px}
@media(max-width:700px){.role-picker{grid-template-columns:1fr}.role-check-grid{grid-template-columns:1fr;min-width:150px}}

/* v1.0.2 controlled administration, change log and updater */
.log-details{margin:8px 0 0;max-width:560px;white-space:pre-wrap;word-break:break-word;background:#f7f9fc;border:1px solid var(--line-2);border-radius:7px;padding:9px;font:11px/1.45 Consolas,"Courier New",monospace;color:#455b76}
.alert-error{background:var(--red-soft);color:#a92f2f;border:1px solid #f1caca;border-radius:8px;padding:10px 12px}
code{font-family:Consolas,"Courier New",monospace;font-size:.92em;background:#f1f5f9;border-radius:4px;padding:1px 4px}
@media(max-width:800px){.cards[style*="repeat(3"]{grid-template-columns:1fr!important}.settings-grid{grid-template-columns:1fr!important}.user-role-table .row-actions{min-width:225px}}
.release-changelog details{border-bottom:1px solid var(--line-2);padding:9px 0}.release-changelog details:last-child{border-bottom:0}.release-changelog summary{cursor:pointer;color:var(--navy)}.release-changelog ul{margin:8px 0 2px 20px;color:var(--muted);font-size:12px}.release-changelog li{margin:4px 0}

/* v1.0.4 — keep the complete navigation reachable on short desktop/laptop viewports. */
.sidebar{overflow:hidden}
.side-nav{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;margin-right:-4px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.30) transparent}
.side-nav::-webkit-scrollbar{width:6px}.side-nav::-webkit-scrollbar-track{background:transparent}.side-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.28);border-radius:999px}.side-nav::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.42)}
.sidebar-footer{flex:0 0 auto}
@media (min-width:821px) and (max-height:760px){
  .sidebar{padding-top:10px;padding-bottom:10px}
  .brand-block{gap:5px;padding-bottom:8px}
  .brand-seal{width:58px;height:58px}
  .brand-block strong{font-size:15px}.brand-block span{font-size:10px}
  .org-caption{padding:7px 8px 8px;font-size:10px}
  .side-nav{gap:3px}
  .side-link{padding:8px 10px;gap:10px;font-size:13px}
  .side-link .icon{width:18px;height:18px}
  .sidebar-footer{display:none}
}
@media (max-width:820px){
  .sidebar{overflow:hidden}
  .side-nav{flex:1;min-height:0;overflow-y:auto;padding-bottom:max(16px,env(safe-area-inset-bottom))}
  .sidebar-footer{display:none}
}

/* v1.0.6 dashboard drill-downs and update-linked attachments */
.metric-link{color:inherit;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.metric-link:hover,.metric-link:focus-visible{transform:translateY(-1px);border-color:#a9c9e8;box-shadow:0 7px 20px rgba(21,35,61,.07);outline:none}
.chart-link{color:inherit;text-decoration:none;border-radius:7px;transition:background .15s ease}
.chart-link:hover,.chart-link:focus-visible{background:#f6f9fc;outline:none}
.donut-link{display:flex;align-items:center;justify-content:center;height:190px;text-decoration:none;color:inherit;border-radius:10px}
.donut-link:hover,.donut-link:focus-visible{background:#f9fbfd;outline:none}
.feed-link{color:inherit;text-decoration:none;border-radius:6px;padding-left:4px;padding-right:4px}
.feed-link:hover,.feed-link:focus-visible{background:#f7faff;outline:none}
.drill-hint{font-size:10px;color:var(--muted);margin-top:6px}
.update-attachment-picker{border-top:1px solid var(--line-2);padding:9px 0 8px;display:flex;flex-direction:column;gap:6px}
.update-attachment-picker label{font-size:11px;font-weight:700;color:#425b78;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.update-attachment-picker input[type=file]{font-size:11px;color:var(--muted);max-width:100%}
.update-files{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;padding-top:8px;border-top:1px solid rgba(71,103,137,.13)}
.update-file{max-width:100%;display:inline-flex;align-items:center;gap:5px;text-decoration:none;background:#fff;border:1px solid #d9e5f0;border-radius:7px;padding:5px 7px;color:#315d89;font-size:10.5px;font-weight:600}
.update-file span{max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.update-file:hover{background:#f1f7fd;border-color:#b7d0e7}
.attachment-relation{display:block;margin-top:4px;font-size:9.5px;color:#1f6cae;font-weight:600}
.attachment-relation.standalone{color:var(--muted)}
.filter-summary{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
@media(max-width:520px){.update-composer-actions{align-items:flex-end;gap:8px}.update-composer-actions .select-input{max-width:58%}.update-file span{max-width:190px}}
.table-toolbar .select-input{width:auto;min-width:132px;padding:7px 9px}
@media(max-width:820px){.panel-head{align-items:flex-start;flex-wrap:wrap}.table-toolbar{width:100%}.table-toolbar .search-input{flex:1 1 220px}.table-toolbar .select-input{flex:1 1 150px;min-width:0}}

/* v1.0.10: consistent spacing, readable secondary text and touch controls. */
:root{--muted:#53657b;--muted-2:#64748b}
.content{min-width:0}.page-head>div{min-width:0}.page-head h1{overflow-wrap:anywhere}
.page-actions,.row-actions{flex-wrap:wrap}.field{min-width:0}.field input,.field select,.field textarea{max-width:100%}
.dashboard-grid{align-items:start}.dashboard-grid>.panel{min-width:0}.dashboard-grid>.panel:last-child{max-height:620px;overflow:auto}
.chart-card{min-height:300px}.board-summary{display:flex;flex-wrap:wrap;gap:10px}.board-summary>*{flex:1 1 145px;min-width:0}
.phase-column{min-height:420px}.drawer-tabs{overflow-x:auto;flex-shrink:0}.drawer-tab{white-space:nowrap;min-height:44px}
.activity-drawer{height:100vh;height:100dvh}.drawer-body{min-height:0;overflow:auto;overscroll-behavior:contain}
.modal{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;min-width:0}.modal form{min-height:0;overflow:auto}.modal-body{min-width:0}
.team-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px;padding:8px;border:1px solid var(--line);border-radius:8px;max-height:240px;overflow:auto}
.team-picker label{display:flex;align-items:center;gap:10px;min-height:44px;padding:7px;border-radius:6px;background:#f4f7fb;cursor:pointer}
.team-picker input[type=checkbox]{width:18px;height:18px;flex:none}.team-picker span{overflow-wrap:anywhere;font-size:13px}
.role-check{min-height:40px}.role-picker-item{min-width:0}.registration-note{display:block;max-width:220px;margin-top:6px;color:var(--muted)}
.registration-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid var(--line)}.registration-toggle small{display:block;max-width:420px;color:var(--muted);margin-top:4px}
.auth-card{width:min(440px,calc(100vw - 24px));max-width:100%}.auth-body{padding:24px 12px}.auth-card .field{margin-bottom:16px}.auth-card p{line-height:1.6}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #1669c7;outline-offset:3px}
.btn:disabled{opacity:.65;cursor:wait}.timeline-meta{flex-wrap:wrap}.timeline-body{overflow-wrap:anywhere}.table-scroll{max-width:100%;overflow:auto}
@media(max-width:820px){.dashboard-grid>.panel:last-child{max-height:none}.page-actions .btn{min-height:44px}.btn,.icon-btn,.icon-btn-sm{min-height:44px}.field input,.field select,.field textarea{font-size:16px;min-height:44px}.team-picker{grid-template-columns:1fr}.board-summary{margin-right:0}.board-summary>*{flex-basis:calc(50% - 10px)}.modal-backdrop{padding:12px}.modal{width:100%;max-width:100%}.modal-head,.modal-body,.modal-footer{padding:16px}.modal-footer{flex-wrap:wrap}.drawer-body{padding-bottom:28px}.chart-card{min-height:260px}.feed-time{white-space:normal}.role-check-grid{gap:4px}.page-actions{gap:8px}.report-title{align-items:flex-start}.report-title h1{overflow-wrap:anywhere;font-size:21px}.auth-row{gap:16px;flex-wrap:wrap}}
@media(max-width:380px){.page-actions .btn{flex-basis:100%}.metric-card h3{font-size:12px}.board-summary>*{flex-basis:100%}.drawer-tab{padding-left:10px;padding-right:10px}}
@media print{.dashboard-grid>.panel:last-child{max-height:none;overflow:visible}.table-scroll{overflow:visible}}

/* v1.0.10 refinement: PSS OAG navigation, grid rhythm, touch surfaces and print report polish. */
.side-link.active,.side-admin-group>.admin-toggle.active{background:linear-gradient(90deg,#237d45,#19673a)!important;color:#fff!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.side-admin-group{margin-top:7px;border-top:1px solid rgba(255,255,255,.2);padding-top:8px}
.side-admin-group summary{list-style:none;cursor:pointer;display:flex;align-items:center;min-height:44px}
.side-admin-group summary::-webkit-details-marker{display:none}
.side-admin-group .nav-chevron{margin-left:auto;font-size:18px;transition:transform .15s}
.side-admin-group[open] .nav-chevron{transform:rotate(180deg)}
.side-admin-items{padding:4px 0 6px 16px;display:grid;gap:3px}
.side-admin-items .side-link{font-size:12.5px;min-height:40px;padding:8px 10px}
.cycle-overview-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.cycle-overview-card{padding:18px;min-width:0;border:1px solid var(--line);background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(15,31,50,.03);color:inherit;text-decoration:none}
.cycle-overview-card span{display:block;font-weight:600;font-size:12px;color:var(--muted)}
.cycle-overview-card strong{display:block;font-size:28px;line-height:1.2;margin-top:9px;color:var(--navy)}
.cycle-overview-card small{color:var(--muted);font-size:11px;margin-top:5px;display:block}
.cycle-overview-card:focus-visible{outline:3px solid #237d45;outline-offset:3px}
.cycle-phase-list{display:grid;gap:13px}.cycle-phase-item{display:grid;grid-template-columns:minmax(155px,1fr) 2fr auto;gap:12px;align-items:center}
.cycle-phase-item strong{font-size:12px}.cycle-phase-item .progress-track{height:9px}.cycle-phase-item em{font-style:normal;font-size:12px;color:var(--muted);min-width:44px;text-align:right}
.cycle-team-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;max-height:260px;overflow:auto;padding:8px;background:#f7f9fc;border:1px solid var(--line);border-radius:9px}
.cycle-team-checks label{display:flex;align-items:center;gap:9px;min-height:44px;font-size:13px;padding:8px;background:#fff;border-radius:7px;border:1px solid var(--line-2)}
.cycle-team-checks input{width:18px;height:18px;accent-color:#237d45}
.btn{min-height:40px}.btn-sm{min-height:36px}.icon-button,.icon-btn-sm{min-width:40px;min-height:40px}
.field label{font-size:12px}.field input,.field select,.field textarea{width:100%;box-sizing:border-box}
.cycle-detail-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:start}
.cycle-detail-layout>.panel{min-width:0}
@media(max-width:920px){.cycle-overview-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.cycle-detail-layout{grid-template-columns:1fr}}
@media(max-width:580px){.cycle-overview-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cycle-overview-card{padding:12px}.cycle-overview-card strong{font-size:23px}.cycle-phase-item{grid-template-columns:minmax(110px,1fr) 1.2fr 34px;gap:8px}.cycle-team-checks{grid-template-columns:1fr}.content{padding-left:14px;padding-right:14px}.page-head{gap:12px}}
@media print{
 @page{size:A4 portrait;margin:16mm 13mm 17mm}
 body{background:#fff!important;color:#142438!important;font:11pt/1.5 Arial,sans-serif!important}
 .report-cover{border:0!important;box-shadow:none!important;padding:0!important}
 .report-title{border-bottom:2px solid #237d45;margin-bottom:16px;padding-bottom:12px;page-break-after:avoid}
 .report-title img{max-height:63px;object-fit:contain}
 .report-section{break-inside:auto;page-break-inside:auto;margin-bottom:18px}
 .report-section h2{break-after:avoid;font-size:13pt;color:#173e58}
 .report-activity{break-inside:avoid-page;border-color:#dbe5ed}
 .data-table{font-size:9pt;min-width:0!important;table-layout:auto;width:100%}
 .data-table thead{display:table-header-group}
 .data-table tr{break-inside:avoid}
 a{color:inherit;text-decoration:none}
 .report-print-footer{display:block!important;margin-top:22px;font-size:9pt;border-top:1px solid #cad6e0;padding-top:8px;color:#53657b}
}

/* Release history: readable narrative rather than the former hard-coded bullet list. */
.release-changelog .release-intro{font-size:13px;line-height:1.6;color:var(--muted);margin:0 0 15px}
.release-changelog details{padding:16px 0;border-bottom:1px solid var(--line-2)}
.release-changelog details summary{display:flex;align-items:center;flex-wrap:wrap;gap:7px;line-height:1.4;font-size:15px}
.release-changelog details summary strong{white-space:nowrap}
.release-changelog .release-current{margin-left:auto;font-size:11px}
.release-changelog .release-date{font-size:11px;color:var(--muted);margin:9px 0 5px}
.release-changelog .release-summary{color:var(--navy);font-size:13px;font-weight:500;line-height:1.7}
.release-changelog p{margin:8px 0 10px;font-size:13px;line-height:1.7;color:var(--muted)}
.release-changelog h3{font-size:13px;color:var(--navy);margin:16px 0 4px}
.release-changelog .release-warning{color:#8a5e13}
@media(max-width:520px){.release-changelog details summary{font-size:14px}.release-changelog .release-current{margin-left:0}}

/* v1.0.12: readable notice if an optional overview widget cannot load. */
.cycle-overview-warning{margin:0 0 16px;padding:12px 15px;background:#fff7e5;border:1px solid #e9c477;border-radius:10px;color:#60460f;font-size:14px;line-height:1.5}

/* v1.0.13: persistent three-view audit-cycle navigation. */
.cycle-tabs{
  position:sticky;
  top:var(--topbar);
  z-index:28;
  display:flex;
  align-items:stretch;
  gap:10px;
  margin:0 0 16px;
  padding:5px 8px 0;
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  background:rgba(255,255,255,.98);
  border:1px solid var(--line);
  border-radius:10px 10px 0 0;
  box-shadow:0 2px 8px rgba(13,47,95,.03);
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
.cycle-tab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  flex:0 0 auto;
  padding:10px 15px;
  white-space:nowrap;
  color:#4f637e;
  font-size:14px;
  font-weight:600;
  border-bottom:3px solid transparent;
  text-decoration:none;
  transition:color .15s ease,background-color .15s ease;
}
.cycle-tab:hover{color:#176b38;background:#f0f8f2;}
.cycle-tab.active,.cycle-tab[aria-current="page"]{
  color:#19723e;
  background:#eaf7ed;
  border-color:#1f9345;
}
.cycle-tab:focus-visible{outline:3px solid #19723e;outline-offset:-3px;}
@media(max-width:520px){
  .cycle-tabs{gap:3px;padding:3px 5px 0;}
  .cycle-tab{font-size:13px;min-height:46px;padding:10px 12px;}
}
@media print{.cycle-tabs{display:none!important;}}

/* v1.0.14: responsive clarity and keyboard accessibility */
:root{--muted:#53657b;--muted-2:#596b82}
.field label,.field-label{font-size:12px;line-height:1.45;font-weight:700;color:#374d69}
.cycle-register-link{display:block;color:var(--navy);text-decoration:none;border-radius:6px;padding:3px 0;line-height:1.45}
.cycle-register-link small{color:var(--muted);font-size:12px}
.cycle-register-link:hover,.cycle-register-link:focus-visible{color:#135f8d;text-decoration:underline}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid #1669c7;outline-offset:2px}
.btn-sm,.icon-btn-sm{min-height:40px}
@media(max-width:820px){.btn-sm,.icon-btn-sm,.cycle-register-link{min-height:44px}.cycle-register-link{display:flex;flex-direction:column;justify-content:center}}
.drill-hint,.release-changelog .release-date,.release-changelog .release-current{font-size:12px}


/* v1.0.19 — unified panel headers, balanced forms and responsive update console.
   Existing Puntland OAG navy/blue branding is retained; green marks active states. */
:root{--panel-header-bg:#eff5fb;--panel-header-edge:#d6e2ef;--panel-header-ink:#0d2f5f;--control-edge:#cbd8e6}
.panel{min-width:0}
.panel-head{
  min-width:0;min-height:62px;padding:15px 18px;gap:12px;
  background:linear-gradient(105deg,var(--panel-header-bg),#f7fafe);
  border-bottom:1px solid var(--panel-header-edge);
  border-radius:var(--radius) var(--radius) 0 0;
}
.panel-head .panel-title,.panel-head h2.panel-title{margin:0;color:var(--panel-header-ink);font-size:16px;font-weight:750;line-height:1.35}
.panel-head .panel-title .icon{color:#155686}
.panel-body{min-width:0;padding:18px}
.app-topbar{background:rgba(250,252,255,.97);border-bottom-color:#d6e1ee}
.page-head h1{color:var(--panel-header-ink)}
.data-table th{background:#edf3f9;color:#294362;font-size:12px;font-weight:700;padding:12px 13px}
.data-table td{padding:12px 13px;line-height:1.5;overflow-wrap:anywhere}
.data-table tbody tr:focus-within{background:#eef7f0}
.metric-card{min-width:0;align-items:center}
.metric-card h3{font-size:12px;line-height:1.4}
.field{min-width:0;gap:7px}
.field label,.field-label{font-size:13px;line-height:1.4;color:#28405e;font-weight:700}
.field :is(input,select,textarea),.select-input{min-width:0;min-height:44px;border-color:var(--control-edge);line-height:1.45}
.field textarea{min-height:105px}
.field input[type="checkbox"],.field input[type="radio"]{width:18px;min-height:18px;height:18px;accent-color:var(--green);flex:none}
.field input[type="file"]{padding:10px 12px;min-height:52px;max-width:100%;font-size:14px}
.field :is(input,select,textarea):focus{border-color:#276ea8;box-shadow:0 0 0 3px rgba(46,123,196,.14)}
.form-grid{gap:15px}
.form-actions{flex-wrap:wrap;align-items:center;gap:10px}
.btn{min-height:42px;padding:10px 14px;line-height:1.35}
.btn-sm{min-height:40px;padding:8px 11px}
.page-actions{align-items:center}
.modal-head{background:var(--panel-header-bg);color:var(--panel-header-ink)}
.modal-head h2{color:var(--panel-header-ink);line-height:1.35}
.drawer-header{background:#f4f8fc}
.help{font-size:12px;line-height:1.55}
.table-scroll{min-width:0;max-width:100%}

/* Update console: equal-height cards, with scrolling confined to Update History. */
.updater-status-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
.updates-console{
 display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
 align-items:stretch;gap:16px;min-width:0;
}
.updates-console>.update-console-card{
 display:flex;flex-direction:column;min-width:0;min-height:0;
 height:610px;overflow:hidden;
}
.updates-console>.update-console-card>.panel-head{flex:0 0 auto;min-height:66px}
.update-install-body{
 display:flex;flex-direction:column;flex:1;min-height:0;
 overflow-y:auto;overscroll-behavior:contain;
 scrollbar-gutter:stable;
}
.update-install-body>.lock-note{flex-shrink:0}
.update-install-body #update-form{margin-top:8px}
.update-package-help{margin:16px 0 0;color:var(--muted)}
.update-history-scroll{
 flex:1;min-height:0;max-height:none;
 overflow-x:auto;overflow-y:auto;
 overscroll-behavior:contain;scrollbar-gutter:stable;
 background:#fff;
}
.update-history-scroll .data-table{min-width:660px}
.update-history-scroll .data-table thead th{
 position:sticky;top:0;z-index:2;
 background:#eaf1f8;border-bottom:1px solid #d4e0ed;
}
.update-history-scroll .data-table td:nth-child(2){min-width:205px}
.update-history-scroll .data-table td:nth-child(2) .muted{
 max-width:280px;font-size:12px!important;line-height:1.4;
 overflow-wrap:anywhere;word-break:break-word;
}
.update-history-scroll:focus-visible{outline:3px solid #217541;outline-offset:-3px}
@media(max-width:1180px){
 .updater-status-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
 .updates-console{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media(max-width:900px){
 .updates-console{grid-template-columns:minmax(0,1fr)}
 .updates-console>.update-install-card{height:auto;min-height:0}
 .updates-console .update-install-body{overflow:visible}
 .updates-console>.update-history-card{height:420px}
 .updates-console .update-history-scroll{overflow:auto}
}
@media(max-width:600px){
 .updater-status-cards{grid-template-columns:1fr}
 .panel-head{padding:13px 14px;min-height:56px}
 .panel-body{padding:15px}
 .panel-head .panel-title,.panel-head h2.panel-title{font-size:15px}
 .updates-console{gap:12px}
 .updates-console>.update-console-card>.panel-head{min-height:58px}
 .updates-console>.update-history-card{height:370px}
 .update-history-scroll .data-table{min-width:650px}
 .field input[type="file"]{font-size:13px}
 .form-actions .btn{min-height:44px}
 .page-head h1{font-size:22px}
}
@media print{
 .updates-console>.update-console-card{height:auto!important;overflow:visible!important}
 .update-history-scroll,.update-install-body{overflow:visible!important;max-height:none!important}
 .update-history-scroll .data-table thead th{position:static}
 .panel-head{background:#eef3f9!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

.registration-status{display:inline-block;padding:3px 7px;border-radius:16px;font-size:11px;font-weight:700}.registration-status.awaiting{background:#fff0ce;color:#795400}.registration-status.verified{background:#dceefa;color:#124f77}.registration-status.active{background:#d8efdc;color:#145b2d}

/* 1.0.22: symmetric approvals workspace and compact activity decisions */
.approval-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.approval-metric{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;justify-content:space-between;gap:10px;align-items:center}
.approval-metric span{color:var(--muted);font-size:13px;font-weight:650}.approval-metric strong{font-size:27px;color:var(--navy)}
.approval-section{margin-bottom:16px;overflow:hidden}.approval-cards{display:grid;gap:14px;padding:16px}
.approval-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;min-width:0}
.approval-card-head{padding:16px 18px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line-2)}
.approval-card-head h3{margin:10px 0 4px;font-size:16px;color:var(--navy)}.approval-card-head p,.approval-date,.approval-muted{color:var(--muted);font-size:12px;margin:0}
.approval-date{white-space:nowrap}.approval-card-body{padding:14px 18px}.approval-card-body>p{margin:0 0 10px;line-height:1.6;overflow-wrap:anywhere}
.approval-evidence-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:16px;margin:12px 0}
.approval-evidence-layout>div{min-width:0}.approval-evidence-layout h4{margin:0 0 9px;font-size:13px;color:var(--navy)}
.approval-note{background:#f6f9fc;border:1px solid var(--line-2);border-radius:8px;padding:10px;margin-bottom:8px;color:var(--muted);font-size:11px}
.approval-note p{font-size:12px;color:var(--ink);line-height:1.55;overflow-wrap:anywhere;margin:5px 0 0;max-height:125px;overflow:auto}
.approval-evidence-link{display:flex;align-items:center;gap:7px;min-width:0;padding:7px 9px;border:1px solid var(--line-2);border-radius:7px;margin-bottom:7px;color:var(--blue);text-decoration:none;overflow-wrap:anywhere;font-size:12px}
.approval-decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;background:#f8fafc;padding:14px 18px;border-top:1px solid var(--line-2)}
.approval-decision-form{display:grid;align-content:start;gap:7px;min-width:0}.approval-decision-form label{font-size:12px;font-weight:650}
.approval-decision-form textarea{width:100%;min-width:0;min-height:70px;border:1px solid var(--line);padding:9px;border-radius:8px;resize:vertical}
.approval-decision-form .btn{justify-self:start}.approval-table{min-width:670px}.approval-action{margin-top:14px;padding:14px}
.approval-action h3{margin:0 0 8px}.approval-action p{color:var(--muted);line-height:1.55}
.approval-queue-link{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px;background:#f5f9fe;border:1px solid var(--line);border-radius:9px;margin-top:12px}
@media(max-width:760px){.approval-metrics{grid-template-columns:1fr}.approval-evidence-layout,.approval-decision-grid{grid-template-columns:1fr}.approval-card-head{flex-wrap:wrap}.approval-decision-form .btn{min-height:44px}}

.nav-count{margin-left:auto;min-width:20px;text-align:center;background:#fff;color:#12588a;padding:2px 5px;font-size:11px;border-radius:9px;font-weight:800}
[hidden]{display:none!important}


/* v1.0.23 — Activity drawer form alignment, readable progress composer and symmetrical approval controls. */
#drawer-details,#drawer-updates{min-width:0;max-width:100%}
#drawer-updates .activity-update-composer{display:grid;gap:18px;margin:0 0 24px;padding:20px;border:1px solid #d3e1ee;border-radius:13px;background:#f9fbfe;min-width:0}
#drawer-updates .activity-update-composer .field{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:0}
#drawer-updates .activity-update-composer .field label{display:block;font-weight:750;font-size:14px;color:#223d62;margin:0}
#drawer-updates .activity-update-composer textarea{display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:150px;margin:0;border:1px solid #c9d8e8;border-radius:10px;background:#fff;padding:13px 15px;line-height:1.6;resize:vertical;font-size:14px;color:var(--ink)}
#drawer-updates .activity-update-composer .help{margin:0;color:#587088;font-size:12px;line-height:1.55}
#drawer-updates .activity-update-actions{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-top:16px;border-top:1px solid #dae4ee}
#drawer-updates .activity-update-actions .btn{flex:0 1 auto;min-height:44px;white-space:normal;text-align:center}
#drawer-updates .activity-evidence-list{display:grid;gap:12px}
#drawer-updates .activity-evidence-list:empty{display:none}
#drawer-updates .activity-evidence-entry{padding:14px;background:#fff;border:1px solid #d7e4f0;border-radius:10px;min-width:0}
#drawer-updates .activity-evidence-entry-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;color:#2a486c;font-size:13px}
#drawer-updates .activity-evidence-remove{border:0;background:transparent;color:#b13b3b;cursor:pointer;padding:5px 7px;font-weight:650;font-size:12px}
#drawer-updates .activity-evidence-entry .form-grid{gap:12px}
#drawer-updates .activity-evidence-entry input{display:block;max-width:100%;width:100%;min-width:0;padding:10px 12px;border:1px solid #c9d8e8;border-radius:9px;background:#fff;font-size:14px}
#drawer-updates .activity-updates-feed{min-width:0;margin-top:12px}
#drawer-updates .activity-updates-feed-heading{display:flex;align-items:center;gap:10px;margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid #dde7f0}
#drawer-updates .activity-updates-feed-heading h3{font-size:16px;margin:0;color:#173866}
#drawer-updates .timeline-item{overflow-wrap:anywhere}
#drawer-updates .timeline-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px 12px}
#drawer-updates .timeline-document{padding-top:8px;font-size:13px}
#drawer-updates .update-empty-state{text-align:center;padding:28px 12px;background:#fff;border:1px dashed #dce5ef;border-radius:10px}
#drawer-details .approval-action{padding:20px;border:1px solid #d3e1ee;border-radius:13px;min-width:0;box-shadow:none}
#drawer-details .approval-action h3{font-size:18px;line-height:1.35;color:#192f51;margin:0 0 6px}
#drawer-details .approval-action-intro{margin:0 0 18px;font-size:13px;color:#587088}
#drawer-details .approval-change-form{display:grid;gap:17px;min-width:0}
#drawer-details .approval-change-form .field{display:flex;flex-direction:column;align-items:stretch;gap:7px;min-width:0}
#drawer-details .approval-change-form label{font-weight:750;font-size:13px;color:#2d4766;margin:0}
#drawer-details .approval-change-form :is(input,select,textarea){display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:46px;padding:11px 13px;border:1px solid #c9d8e8;border-radius:10px;background:#fff;font-size:14px;line-height:1.5;color:var(--ink)}
#drawer-details .approval-change-form textarea{min-height:110px;resize:vertical}
#drawer-details .approval-date-fields{gap:16px;margin:0}
#drawer-details .approval-change-actions{display:flex;justify-content:flex-end;gap:10px;margin:0;padding-top:14px;border-top:1px solid #dde7f0;position:static;background:transparent}
#drawer-details .approval-change-actions .btn{min-height:44px}
@media(max-width:600px){
 #drawer-updates .activity-update-composer{padding:16px;gap:14px;margin-bottom:20px}
 #drawer-updates .activity-update-actions{align-items:stretch;flex-direction:column}
 #drawer-updates .activity-update-actions .btn{width:100%}
 #drawer-updates .activity-evidence-entry{padding:12px}
 #drawer-details .approval-action{padding:16px}
 #drawer-details .approval-date-fields{grid-template-columns:minmax(0,1fr);gap:14px}
 #drawer-details .approval-change-actions .btn{width:100%}
}


/* v1.0.24 — DMS-consistent sidebar and readable Staff Accounts directory. */
:root{--sidebar:262px}
.sidebar{padding:17px 15px 15px;background:linear-gradient(180deg,#164d76 0%,#124369 60%,#103b60 100%)}
.brand-block{padding:0 7px 15px;gap:8px}
.brand-seal{width:70px;height:70px;object-fit:contain}
.brand-block strong{font-size:20px;line-height:1.25}
.brand-block span{font-size:12px;line-height:1.35}
.org-caption{font-size:12px;padding:12px 8px 17px;line-height:1.5}
.side-nav{gap:6px;padding-right:5px;scrollbar-width:thin;scrollbar-color:#567e9b transparent}
.side-link{min-height:48px;padding:11px 13px;gap:13px;font-size:14px;font-weight:600;line-height:1.35;border-radius:11px}
.side-link .icon{width:22px;height:22px}
.side-link span:not(.nav-count):not(.nav-chevron){min-width:0}
.side-link.active,.side-admin-group>.admin-toggle.active{background:#19723d!important;color:#fff!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)!important}
.side-link:hover{background:rgba(255,255,255,.14)}
.side-admin-group{border-top:1px solid rgba(255,255,255,.24);padding-top:12px;margin-top:11px}
.side-admin-group .admin-toggle{font-weight:700}
.side-admin-items{padding:8px 0 7px 11px;gap:5px}
.side-admin-items .side-link{padding:11px 11px;min-height:46px;font-size:13.5px;gap:12px;line-height:1.3}
.side-admin-items .side-link .icon{width:20px;height:20px}
.sidebar-footer{padding:16px 8px 4px}
/* Staff list: cards replace the unworkable six-column, inline-edit table. */
.staff-page-head{align-items:center}
.staff-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 18px}
.staff-summary-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 18px;background:#fff;border:1px solid var(--line);border-radius:12px}
.staff-summary-item span{color:#596d84;font-weight:600;font-size:13px}
.staff-summary-item strong{font-size:24px;color:#173e65;line-height:1.1}
.staff-directory{overflow:hidden}
.staff-toolbar{padding:20px 21px;display:flex;justify-content:space-between;align-items:center;gap:18px;border-bottom:1px solid var(--line-2)}
.staff-toolbar>div{min-width:0}
.staff-section-heading{margin:0;font-size:18px;color:var(--navy);display:flex;align-items:center;gap:10px}
.staff-toolbar p{margin:5px 0 0;color:var(--muted);font-size:12.5px;line-height:1.5}
.staff-filters{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.staff-search-label{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid #cad9e9;border-radius:9px;background:#fff;color:#63758c;min-width:230px;min-height:44px}
.staff-search-label input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:13px}
.staff-search-label:focus-within{outline:2px solid #7bb2ea;outline-offset:1px}
.staff-filters .select-input{min-width:135px;width:auto;min-height:44px;border-radius:9px}
.staff-directory-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 21px;font-size:12px;color:#697d93;background:#f8fafc}
.staff-directory-meta #staff-visible-count{font-weight:750;color:#27517b}
.staff-card-grid{padding:17px 19px 22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.staff-card{min-width:0;border:1px solid #d4e0eb;border-radius:12px;background:#fff;box-shadow:0 2px 8px rgba(19,51,89,.03);overflow:hidden}
.staff-card[hidden]{display:none!important}
.staff-card:has(details[open]){border-color:#8db4da;box-shadow:0 4px 16px rgba(19,51,89,.07)}
.staff-card-head{cursor:pointer;display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:start;column-gap:12px;row-gap:8px;padding:16px 16px 10px;list-style:none}
.staff-card-head::-webkit-details-marker{display:none}
.staff-card-head:focus-visible{outline:3px solid #237d45;outline-offset:-4px}
.staff-avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:11px;background:#e9f1fb;color:#185789;font-weight:800;font-size:15px}
.staff-main-info{display:flex;flex-direction:column;min-width:0;gap:4px}
.staff-name{font-size:15px;color:#173459;line-height:1.38;overflow-wrap:anywhere}
.staff-email{font-size:12.5px;color:#50687f;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}
.staff-verification{margin-top:4px}
.staff-verify-badge{display:inline-flex;align-items:center;width:fit-content;border-radius:16px;font-size:11px;padding:3px 8px;font-weight:650}
.staff-verify-badge.is-verified{background:#e5f4e9;color:#176b3a}
.staff-verify-badge.is-pending{background:#fff4d9;color:#815500}
.staff-verify-badge.is-provisioned{background:#edf1f6;color:#526781}
.staff-status-badge{grid-column:3;grid-row:1;white-space:nowrap;padding:5px 10px;border-radius:15px;font-size:11px;font-weight:750}
.staff-status-badge.is-active{background:#e0f2e7;color:#13683b}
.staff-status-badge.is-disabled{background:#fff0e6;color:#965016}
.staff-manage-link{grid-column:3;grid-row:2;display:inline-flex;align-items:center;justify-content:flex-end;gap:3px;font-size:12px;color:#1865a7;font-weight:750;padding:2px 0}
.staff-manage-link .icon{transition:transform .15s ease}
.staff-card details[open] .staff-manage-link .icon{transform:rotate(90deg)}
.staff-card-preview{display:flex;align-items:end;justify-content:space-between;gap:12px;min-height:62px;padding:11px 16px 16px}
.staff-role-badges{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}
.staff-role-badge{padding:4px 8px;background:#edf4fc;color:#255b8c;border-radius:7px;font-size:11px;font-weight:650;max-width:100%;overflow-wrap:anywhere}
.staff-role-badge.staff-no-role{color:#8b5c13;background:#fff5df}
.staff-last-login{display:flex;flex-direction:column;gap:3px;text-align:right;flex:none;font-size:11px}
.staff-last-login span{color:#718297}.staff-last-login strong{color:#4f6278;font-weight:600}
.staff-card-editor{border-top:1px solid #dce7f1;background:#f9fbfe;padding:18px 16px 16px}
.staff-editor-fields{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(140px,.7fr);gap:16px;align-items:start}
.staff-role-fieldset{border:0;min-width:0;padding:0;margin:0}
.staff-role-fieldset legend,.staff-status-field>label{font-size:13px;font-weight:750;color:#25476b;margin:0 0 4px;padding:0}
.staff-role-fieldset p{margin:3px 0 11px;color:var(--muted);font-size:11.5px;line-height:1.4}
.staff-role-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.staff-role-option{display:flex;gap:9px;align-items:center;min-height:40px;background:#fff;padding:8px 10px;border:1px solid #d5e2ef;border-radius:8px;font-size:12px;color:#2c4564;cursor:pointer}
.staff-role-option:has(input:checked){background:#edf6ff;border-color:#8eb9e5;color:#164b7c}
.staff-role-option input{width:17px;height:17px;accent-color:#1765b3;flex:none;margin:0}
.staff-status-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.staff-status-field .select-input{min-height:42px;width:100%;border-radius:9px}
.staff-status-field small{font-size:11px;color:var(--muted);line-height:1.45}
.staff-editor-save{margin-top:15px;display:flex;justify-content:flex-end}
.staff-editor-save .btn{min-height:42px}
.staff-security-section{margin-top:16px;padding-top:15px;border-top:1px solid #dae6f0}
.staff-security-section h3{font-size:12.5px;color:#244c70;margin:0 0 10px}
.staff-security-actions{display:flex;gap:8px;flex-wrap:wrap}
.staff-security-actions .btn{min-height:38px;white-space:normal;line-height:1.3}
.staff-security-actions .btn-danger{margin-left:auto}
.staff-empty-state{padding:28px 18px;text-align:center;color:var(--muted);margin:0}
.staff-record-note{margin-top:14px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1280px){.staff-card-grid{grid-template-columns:1fr}.staff-editor-fields{grid-template-columns:minmax(0,1.3fr) minmax(160px,.7fr)}}
@media(max-width:1100px){.staff-toolbar{flex-direction:column;align-items:stretch}.staff-filters{width:100%}.staff-search-label{flex:1}}
@media(max-width:820px){:root{--sidebar:262px}.sidebar{width:min(284px,90vw);padding:16px 13px}.side-nav{gap:5px}.side-link{font-size:14px;min-height:48px}.side-admin-items .side-link{font-size:13.5px}.staff-summary{gap:8px}.staff-summary-item{padding:12px}.staff-card-grid{padding:12px}.staff-toolbar{padding:15px}.staff-directory-meta{padding:11px 15px}.staff-page-head{align-items:stretch}}
@media(max-width:580px){.staff-summary-item{flex-direction:column;align-items:flex-start;gap:6px}.staff-summary-item strong{font-size:22px}.staff-editor-fields{grid-template-columns:1fr}.staff-security-actions .btn-danger{margin-left:0}.staff-card-head{padding:13px;grid-template-columns:39px minmax(0,1fr) auto;gap:8px}.staff-avatar{width:38px;height:38px}.staff-name{font-size:14px}.staff-card-preview{flex-wrap:wrap;align-items:flex-start}.staff-last-login{text-align:left}.staff-toolbar{gap:12px}.staff-filters .staff-search-label,.staff-filters .select-input{width:100%;flex:1 1 100%}.staff-editor-save .btn{width:100%}.staff-card-editor{padding:15px 13px}.staff-role-options{gap:7px}}
@media(max-width:380px){.staff-status-badge{grid-row:3;grid-column:2;justify-self:start}.staff-manage-link{grid-column:3;grid-row:1}.staff-role-options{grid-template-columns:1fr}.staff-summary-item span{font-size:11px}}

.staff-card-head .staff-card-preview{grid-column:1/-1;grid-row:4;display:flex;align-items:center;min-width:0;width:100%;padding:9px 0 2px;border-top:1px solid #edf2f7;margin-top:6px}

/* v1.0.25 — Compact, accessible User Accounts directory and balanced navigation. */
:root{--sidebar:232px}
.sidebar{padding:15px 11px 13px}
.brand-seal{width:64px;height:64px}
.brand-block strong{font-size:18px}
.org-caption{padding:10px 5px 14px}
.side-link{padding:10px 9px;gap:10px;min-height:44px;font-size:13px}
.side-link .icon{width:20px;height:20px}
.side-admin-items{padding-left:8px}
.side-admin-items .side-link{min-height:42px;padding:9px 7px;gap:9px;font-size:12.5px}
.staff-directory{border-radius:12px}
.staff-card-grid{display:flex;flex-direction:column;gap:0;padding:0}
.staff-card{width:100%;border:0;border-bottom:1px solid #e4ebf3;border-radius:0;box-shadow:none}
.staff-card:last-child{border-bottom:0}
.staff-card:has(details[open]){border-color:#a5c3df;box-shadow:inset 3px 0 #2e7bc4;background:#fcfdff}
.staff-card-head{display:grid;grid-template-columns:40px minmax(180px,2.1fr) minmax(120px,1.5fr) 84px 120px 82px;column-gap:12px;row-gap:0;align-items:center;padding:10px 16px;min-height:73px}
.staff-card-head:hover{background:#f7faff}
.staff-avatar{width:38px;height:38px;border-radius:10px;font-size:13px}
.staff-name{font-size:13.5px;line-height:1.3}
.staff-main-info{gap:2px}
.staff-secondary-line{display:flex;align-items:center;flex-wrap:wrap;gap:3px 8px;min-width:0}
.staff-email{font-size:11.5px;line-height:1.35;overflow-wrap:anywhere;min-width:0}
.staff-verification{margin:0;display:inline-flex;align-items:center}
.staff-verify-badge{font-size:10px;padding:2px 7px;white-space:nowrap}
.staff-card-head .staff-role-badges{display:flex;align-items:center;gap:4px;flex-wrap:wrap;min-width:0;align-self:center}
.staff-role-badge{font-size:10.5px;line-height:1.3;padding:3px 6px}
.staff-status-badge{grid-column:auto;grid-row:auto;justify-self:start;padding:4px 9px}
.staff-last-login{font-size:10.5px;line-height:1.35;text-align:left}
.staff-last-login strong{font-size:11px}
.staff-manage-link{grid-column:auto;grid-row:auto;align-self:center;justify-self:end;white-space:nowrap;font-size:12px}
.staff-card-editor{padding:16px 20px 18px}
.staff-directory-meta{padding:8px 16px}
.staff-toolbar{padding:14px 17px;gap:12px}
.staff-toolbar p{font-size:11.5px}
.staff-search-label{min-height:38px;min-width:205px}
.staff-filters .select-input{min-height:38px;min-width:130px}
.staff-summary{gap:10px;margin-bottom:14px}
.staff-summary-item{padding:10px 15px}
.staff-summary-item strong{font-size:21px}
@media(max-width:1270px){
 .staff-card-head{grid-template-columns:38px minmax(155px,2fr) minmax(105px,1.3fr) 78px 78px;gap:9px}
 .staff-last-login{display:none}
}
@media(max-width:1040px){
 .staff-card-head{grid-template-columns:38px minmax(135px,2fr) minmax(92px,1fr) 75px;gap:8px}
 .staff-status-badge{display:none}
 .staff-last-login{display:none}
 .staff-toolbar{flex-direction:column;align-items:stretch}
 .staff-filters{width:100%}
 .staff-search-label{flex:1}
}
@media(max-width:820px){
 :root{--sidebar:232px}
 .sidebar{width:min(280px,90vw)}
 .staff-card-head{grid-template-columns:38px minmax(0,1fr) auto;grid-template-rows:auto auto;gap:5px 9px;min-height:82px;padding:11px 13px}
 .staff-avatar{grid-column:1;grid-row:1/3}
 .staff-main-info{grid-column:2;grid-row:1}
 .staff-card-head .staff-role-badges{grid-column:2;grid-row:2}
 .staff-manage-link{grid-column:3;grid-row:1/3}
 .staff-status-badge,.staff-last-login{display:none}
 .staff-toolbar{padding:13px}
 .staff-directory-meta{padding:8px 13px}
 .staff-card-editor{padding:14px}
}
@media(max-width:580px){
 .staff-page-head h1{font-size:21px}
 .staff-toolbar p{display:none}
 .staff-summary-item{align-items:center;flex-direction:row;gap:7px}
 .staff-summary-item strong{font-size:19px}
 .staff-summary-item span{font-size:10px}
 .staff-filters{gap:8px}
 .staff-filters .staff-search-label{min-width:0;width:100%;flex:1 1 100%}
 .staff-filters .select-input{min-width:0;width:100%;flex:1 1 100%}
 .staff-name{font-size:13px}
 .staff-card-head .staff-role-badges{gap:3px}
 .staff-role-badge{padding:2px 5px;font-size:10px}
 .staff-email{font-size:11px}
 .staff-verify-badge{font-size:9.5px}
 .staff-editor-fields{grid-template-columns:1fr}
}
@media(max-width:380px){.staff-card-head{grid-template-columns:34px minmax(0,1fr) auto}.staff-avatar{width:34px;height:34px}.staff-manage-link{font-size:11px}.staff-summary-item{padding:8px}}

/* Keep account status visible in compact tablet/mobile rows. */
@media(min-width:821px) and (max-width:1040px){
 .staff-card-head{grid-template-columns:38px minmax(120px,2fr) minmax(85px,1fr) 70px 74px}
 .staff-status-badge{display:inline-flex}
}
@media(max-width:820px){
 .staff-status-badge{display:inline-flex;grid-column:3;grid-row:2;justify-self:end}
 .staff-manage-link{grid-column:3;grid-row:1}
}

/* v1.0.26 – Balanced activity lifecycle and approval tabs */
.cycle-start-notice{border:1px solid #cbdff0;background:#f4f9fe;color:#355674;border-radius:12px;padding:14px 18px;margin:0 0 16px;line-height:1.6}
.cycle-start-notice strong{color:#163963;margin-right:5px}
.cycle-head .page-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.activity-drawer{width:min(720px,100vw);right:-750px}
.drawer-tabs{gap:2px;padding:0 22px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#b4cadf transparent;scroll-snap-type:x proximity}
.drawer-tab{flex:0 0 auto;scroll-snap-align:start;min-height:51px;padding:13px 13px 11px;font-size:13px;line-height:1.4}
.drawer-tab:focus-visible{outline:2px solid #1469b7;outline-offset:-4px}
.drawer-body{padding:24px 26px 34px}
.start-activity-card{border:1px solid #cfe1ed;background:#f7fafc;border-radius:13px;padding:18px 20px;margin:20px 0;display:flex;justify-content:space-between;align-items:center;gap:24px}
.start-activity-card strong{font-size:16px;color:#15345c}.start-activity-card p{margin:4px 0 0;font-size:13px;line-height:1.5;color:#5a7088}
.request-section-head{margin-bottom:22px}.request-section-head h3{font-size:19px;margin:0 0 9px;color:#14335a}.request-section-head p{color:#536c85;line-height:1.65;margin:0;font-size:14px}
.date-current-grid,.completion-review-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-bottom:22px}
.completion-review-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
.date-current-grid>div,.completion-review-summary>div{border:1px solid #dae5f0;background:#f8fbfe;border-radius:11px;padding:16px;min-width:0}
.date-current-grid span,.completion-review-summary span{display:block;font-size:12px;color:#5b7088;margin-bottom:9px}
.date-current-grid strong,.completion-review-summary strong{font-size:15px;line-height:1.5;color:#17385c;overflow-wrap:anywhere}
.request-form{border:1px solid #d7e3ef;border-radius:14px;padding:22px;background:#fff;display:flex;flex-direction:column;gap:18px;margin-bottom:28px}
.request-form .field{min-width:0;margin:0}.request-form .field>label{display:block;margin-bottom:9px;font-weight:650}
.request-form textarea{width:100%;min-height:116px;resize:vertical}
.request-form .form-grid{gap:18px}.request-form input,.request-form select{width:100%;max-width:none;min-height:46px}
.request-form-footer{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:12px}
.request-form-footer .btn{min-height:44px}
.request-history{padding-top:23px;border-top:1px solid #e1e8f1;margin-top:25px}
.request-history h4{font-size:16px;color:#18355b;margin:0 0 15px}
.request-history-list{display:flex;flex-direction:column;gap:12px}
.request-record{border:1px solid #dde8f2;border-radius:12px;padding:16px 18px;min-width:0;background:#fff}
.request-record-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#1e3c5d}
.request-record-meta{color:#687b90;font-size:12px;margin:8px 0}.request-record-reason{font-size:13px;line-height:1.6;margin:10px 0 0;overflow-wrap:anywhere}
.request-record-dates{margin:6px 0;color:#163d65;font-weight:650}
.request-decision-note{border-left:3px solid #8ab5dd;background:#f5f9fd;border-radius:5px;padding:10px 12px;margin:11px 0 0;line-height:1.5;overflow-wrap:anywhere}
.request-info,.request-success,.request-return{padding:15px 18px;border-radius:11px;border:1px solid #cbdff1;background:#f4f9fd;color:#385672;line-height:1.6;margin:14px 0}
.request-success{background:#f3fbf5;border-color:#cde8d3;color:#237040}.request-return{background:#fff8ee;border-color:#e8d6b6;color:#7b5829}.request-return p{margin:8px 0 0}
.request-empty{color:#6b7f95;font-size:13px;padding:10px 0}
@media(max-width:820px){.activity-drawer{width:100vw;right:-105vw}.drawer-tabs{padding:0 12px}.drawer-tab{font-size:12px;min-height:48px;padding:13px 12px}.drawer-body{padding:18px 17px 30px}.request-form{padding:18px}.start-activity-card{padding:16px;flex-wrap:wrap}.completion-review-summary{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.date-current-grid,.completion-review-summary{grid-template-columns:1fr 1fr}.completion-review-summary>div:last-child{grid-column:1/-1}.request-form .form-grid{grid-template-columns:1fr;gap:16px}.request-form{padding:15px}.request-form-footer .btn{width:100%}.start-activity-card .btn{width:100%}.drawer-header{padding:17px 17px 14px}}

.tab-count[hidden],.approval-date-fields[hidden]{display:none!important}

/* v1.0.27: Search-first activity assignment controls; readable on all screen widths. */
.activity-assignment-editor { margin-top:20px; padding:18px; border:1px solid #d8e4ef; border-radius:12px; background:#f9fbfe; }
.user-picker { width:100%; min-width:0; position:relative; background:#fff; border:1px solid #cbd9e7; border-radius:11px; padding:10px 12px; }
.user-picker:focus-within { border-color:#387fca; box-shadow:0 0 0 3px rgba(34,111,189,.10); }
.user-picker-chips { display:flex; flex-wrap:wrap; gap:7px; min-height:18px; align-items:center; }
.user-picker-placeholder { color:#71849c; font-size:13px; }
.user-picker-chip { display:inline-flex; align-items:center; gap:10px; padding:6px 7px 6px 11px; background:#eaf3fd; color:#153b68; border-radius:99px; max-width:100%; font-size:13px; }
.user-picker-chip span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.user-picker-chip button { border:0; background:#fff; border-radius:50%; width:23px; height:23px; display:grid; place-items:center; color:#234a74; cursor:pointer; flex-shrink:0; font-size:17px; }
.user-picker-chip button:hover,.user-picker-chip button:focus { background:#d6e6f8; outline:2px solid #92b9e2; }
.user-picker-search { box-sizing:border-box; width:100%; min-width:0; display:block; border:0!important; box-shadow:none!important; outline:0; padding:11px 3px 5px; margin-top:5px; background:transparent!important; font-size:14px; }
.user-picker-suggestions { position:relative; inset:auto; z-index:auto; display:block; width:100%; box-sizing:border-box; max-height:218px; overflow-y:auto; overscroll-behavior:contain; margin-top:8px; box-shadow:0 3px 12px rgba(11,43,101,.08); background:#fff; border:1px solid #c7d7e9; border-radius:9px; padding:5px; }
.user-picker-suggestions[hidden] { display:none!important; }
.user-picker-option { width:100%; padding:11px 12px; border:0; border-radius:8px; background:#fff; text-align:left; cursor:pointer; display:flex; align-items:center; gap:10px; color:#142d52; }
.user-picker-option:hover,.user-picker-option:focus { background:#edf5ff; }
.user-picker-option span { font-weight:600; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; }
.user-picker-option small { font-size:11px; color:#667d95; }
.user-picker-option strong { color:#0964b7; font-size:12px; }
.user-picker-no-match { padding:8px 12px; color:#5e7186; margin:0; }
.activity-assignment-count { display:flex; align-items:center; gap:6px; font-size:11px; color:#5d7088; margin:7px 0; }
@media(max-width:600px){ .activity-assignment-editor { padding:14px; } .user-picker-option { flex-wrap:wrap; }.user-picker-option small { display:none; } }

/* v1.0.29 — non-cramped, keyboard-accessible Planner-style board filters */
.board-filters{background:#fff;border:1px solid #d9e3f1;border-radius:14px;padding:18px 20px;margin:16px 0;display:grid;gap:12px}
.board-filter-title{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;color:#143764}
.board-filter-title span{font-size:13px;color:#56718b}
.board-filter-fields{display:flex;gap:14px;align-items:end;flex-wrap:wrap}
.board-filter-field{display:flex;flex:1 1 225px;flex-direction:column;gap:7px;min-width:185px;font-weight:600;color:#304f72;font-size:13px}
.board-filter-field select{width:100%;min-height:43px;border:1px solid #c6d6e6;border-radius:9px;background:#fff;padding:9px 12px;color:#213e61;font-size:15px}
.board-filters .btn{min-height:43px}
.phase-filter-result{padding:7px 12px;font-size:12px;color:#536b87}
.activity-card[hidden],.phase-filter-result[hidden],#new-audit-type-other-wrap[hidden]{display:none!important}
#new-audit-type-other-wrap{margin-top:12px;display:grid;gap:6px}
.cycle-ref{font-size:13px;font-weight:700;letter-spacing:.01em;background:#eaf2fc;border-radius:6px;padding:5px 8px;color:#174d86;white-space:nowrap}
@media(max-width:620px){.board-filters{padding:14px}.board-filter-fields{gap:10px}.board-filter-field{flex:1 1 100%;min-width:0}.board-filters .btn{width:100%}}

/* v1.0.30 preserve manual links and add DMS picker without crowding buttons. */
.activity-update-actions{flex-wrap:wrap;gap:9px}.activity-update-actions #get-dms-link{white-space:nowrap}@media(max-width:600px){.activity-update-actions{display:flex;flex-direction:column;align-items:stretch}.activity-update-actions>.btn{width:100%}}

/* OAG integration UX v2026-10: shared visual vocabulary in both applications. */
.oag-connection-panel{border:1px solid #d5e3ef;border-radius:13px;background:#fff;padding:20px;min-width:0}
.oag-connection-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.oag-connection-head h3{font-size:17px;line-height:1.35;color:#123966;margin:0;font-weight:750}
.oag-conn-badge{border:1px solid #dae4ed;color:#596d81;background:#eef2f6;border-radius:999px;padding:6px 12px;font-weight:750;font-size:13px;display:inline-flex;align-items:center;gap:7px}
.oag-conn-badge[data-state="paired"]{color:#14683e;border-color:#a9dec1;background:#e7f7ee}
.oag-conn-badge[data-state="pending"]{color:#865a14;border-color:#ecd6a3;background:#fff5db}
.oag-conn-badge[data-state="error"],.oag-conn-badge[data-state="not_paired"]{color:#933936;border-color:#ecc8c4;background:#fff0ed}
.oag-conn-badge[data-state="paired"]::before{content:"✓";font-weight:900}
.oag-connection-description{color:#5d7187;line-height:1.6;font-size:14px;margin:0 0 15px}
.oag-conn-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:15px 0}
.oag-conn-fact{padding:12px 14px;border:1px solid #dce6ef;border-radius:10px;background:#f8fafc;min-width:0}
.oag-conn-fact strong{display:block;font-size:13px;color:#183d63;margin-bottom:5px}
.oag-conn-fact span{display:block;color:#4b647e;font-size:13px;overflow-wrap:anywhere;line-height:1.5}
.oag-conn-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:15px 0 0}
.oag-conn-actions button{min-height:43px}
.oag-conn-details{border:1px solid #dce5ef;border-radius:11px;margin-top:17px;background:#fcfdff}
.oag-conn-details>summary{cursor:pointer;padding:13px 16px;color:#164672;font-weight:700;min-height:44px;display:list-item}
.oag-conn-advanced{padding:0 16px 16px}
.oag-conn-advanced .field{min-width:0}
.oag-conn-advanced code{overflow-wrap:anywhere;word-break:break-word;font-size:12px}
.oag-conn-hint{margin:10px 0 0;color:#5c7087;font-size:13px;line-height:1.6}
.oag-conn-actions [hidden],.oag-conn-advanced [hidden]{display:none!important}
@media(max-width:660px){.oag-connection-panel{padding:14px}.oag-conn-facts{grid-template-columns:1fr}.oag-conn-actions>*{flex:1 1 100%;width:100%}}
