:root{--blue: #006B9A;--blue-dark: #00587D;--blue-soft: #E6F2F8;--blue-line: #BFDCEA;--ink: #1D263C;--ink-2: #344054;--grey: #667085;--grey-2: #94A3B8;--line: #E6ECF2;--line-2: #EEF2F6;--bg: #F8FAFC;--card: #fff;--red: #DA5552;--red-soft: #FDECEC;--amber: #CF822D;--amber-soft: #FBEFE0;--green: #0E9F6E;--green-soft: #E3F7EE;--radius: 16px;--radius-sm: 10px;--side-w: 248px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .04);--shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .06);--ring: 0 0 0 3px rgba(0, 107, 154, .18);--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}body:has(.signin){background:linear-gradient(160deg,#EAF4F9 0%,var(--bg) 55%);min-height:100vh}a{color:var(--blue);text-decoration:none}a:hover{color:var(--blue-dark);text-decoration:underline}h1{font-size:26px;line-height:1.2;font-weight:700;letter-spacing:-.02em;margin:28px 0 6px}h2{font-size:17px;font-weight:650;letter-spacing:-.01em;margin:30px 0 10px}h3{font-size:15px;font-weight:650;margin:0 0 10px;text-transform:capitalize}h4{font-weight:650}p{margin:8px 0}code{font-family:var(--mono);background:var(--line-2);color:var(--ink-2);padding:1px 6px;border-radius:5px;font-size:12px;border:1px solid var(--line)}.muted{color:var(--grey)}.small{font-size:12px}.right{text-align:right;white-space:nowrap}.spacer{flex:1}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:6px}.top{position:fixed;left:0;top:0;bottom:0;width:var(--side-w);z-index:10;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:20px 14px;background:#fff;border-right:1px solid var(--line);overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 22px;color:var(--ink);font-size:20px;font-weight:700;letter-spacing:-.01em}.brand:before{content:"c";flex:none;width:34px;height:34px;border-radius:9px;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:20px;font-weight:700;line-height:1;padding-bottom:3px}.top nav{display:flex;flex-direction:column;gap:2px;flex:none;margin:0;overflow:visible}.top nav a{display:flex;align-items:center;padding:11px 14px;border-radius:10px;font-size:15px;color:var(--ink);font-weight:500;transition:background .15s,color .15s}.top nav a:hover{background:#f1f5f9;color:var(--ink);text-decoration:none}.top nav a.on{background:var(--blue-soft);color:var(--blue);font-weight:600}.top .muted{margin-top:auto;padding:14px 10px 6px;border-top:1px solid var(--line);color:var(--grey);font-size:12px;background:none;border-radius:0}.top .btn{margin:6px 10px 0;align-self:flex-start}main{margin:0 0 0 var(--side-w);max-width:none;padding:8px 40px 80px}main>*{max-width:1240px}main>h1+.muted,main>h1+p.muted{margin-top:0;margin-bottom:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px;margin:0 0 16px}.card>h3:first-child{padding-bottom:12px;border-bottom:1px solid var(--line-2);margin-bottom:14px}.card>.split:first-child{padding-bottom:12px;border-bottom:1px solid var(--line-2);margin-bottom:14px}.card>.split:first-child h3{margin:0}.split{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.split>h1{margin-bottom:10px}.row-form{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media (max-width: 800px){.cols{grid-template-columns:1fr}}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}.inner{background:var(--bg);border:1px solid var(--line-2);border-radius:10px;padding:14px 16px}.field{display:flex;flex-direction:column;gap:6px;min-width:170px;flex:1}.field>span{font-size:12px;font-weight:600;color:var(--ink-2);letter-spacing:.01em}.field small{color:var(--grey);font-size:11.5px}input,select,textarea{font:inherit;color:var(--ink);padding:9px 12px;min-height:38px;border:1px solid #CDD5E0;border-radius:var(--radius-sm);background:#fff;width:100%;box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:var(--grey-2)}input:hover:not(:disabled):not([type=checkbox]),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:#a9b6c8}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:var(--ring)}input:disabled,select:disabled,textarea:disabled{background:var(--bg);color:var(--grey);cursor:not-allowed;box-shadow:none}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:34px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23667085' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E") no-repeat right 12px center}textarea{font-family:var(--mono);font-size:12.5px;line-height:1.5}input[type=checkbox],input[type=radio]{accent-color:var(--blue);width:16px;height:16px;min-height:0;padding:0;box-shadow:none}.actions select{width:auto}.search{max-width:340px;margin-bottom:12px}fieldset{border:1px solid var(--line);border-radius:10px;margin:14px 0 0;padding:10px 14px 12px;background:#fbfcfe}legend{font-size:12px;font-weight:600;color:var(--ink-2);padding:0 8px}.check{display:flex;align-items:center;gap:9px;margin:6px 0;cursor:pointer}.check input{width:16px}.btn{font:inherit;font-weight:550;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 16px;border-radius:var(--radius-sm);border:1px solid #CDD5E0;background:#fff;color:var(--ink-2);cursor:pointer;box-shadow:var(--shadow-sm);transition:background .15s,border-color .15s,box-shadow .15s,transform .05s}.btn:hover:not(:disabled){background:#f8fafc;border-color:#a9b6c8;text-decoration:none}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:var(--shadow-sm)}.btn.primary:hover:not(:disabled){background:var(--blue-dark);border-color:var(--blue-dark)}.btn.danger{color:var(--red);border-color:#f0c4c3}.btn.danger:hover:not(:disabled){background:var(--red-soft);border-color:#e7a3a1}.btn.sm{min-height:28px;padding:3px 11px;font-size:12px;margin-left:6px;border-radius:7px}.link{background:none;border:0;padding:0;color:var(--blue);cursor:pointer;font:inherit}.link:hover{text-decoration:underline}table{width:100%;border-collapse:separate;border-spacing:0}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--grey);font-weight:600;padding:10px 12px;background:var(--bg);border-bottom:1px solid var(--line);white-space:nowrap}th:first-child{border-top-left-radius:8px}th:last-child{border-top-right-radius:8px}td{padding:13px 12px;border-bottom:1px solid var(--line-2);vertical-align:top}tbody tr{transition:background .12s}tbody tr:hover td{background:#f8fbfe}tbody tr:last-child td{border-bottom:0}tr.sub td{padding-top:0}td strong{font-weight:600}td a{font-weight:550}.chiprow{margin-bottom:4px}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px 2px 8px;border-radius:999px;font-size:11.5px;font-weight:600;text-transform:capitalize;background:var(--line-2);color:var(--grey);border:1px solid transparent}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}.badge.green{background:var(--green-soft);color:var(--green);border-color:#bfe8d6}.badge.blue{background:var(--blue-soft);color:var(--blue-dark);border-color:var(--blue-line)}.badge.amber{background:var(--amber-soft);color:var(--amber);border-color:#f6dcb0}.badge.red{background:var(--red-soft);color:var(--red);border-color:#f6cbca}.badge.grey{background:var(--line-2);color:var(--grey);border-color:var(--line)}.err,.ok,.note{display:block;padding:11px 14px 11px 16px;border-radius:10px;margin:10px 0;font-size:13px;border:1px solid transparent;border-left-width:4px}.err{background:var(--red-soft);color:#9b2c29;border-color:#f6cbca;border-left-color:var(--red);flex-basis:100%}.ok{background:var(--green-soft);color:#076b49;border-color:#bfe8d6;border-left-color:var(--green)}.note{background:var(--amber-soft);color:#7a4a08;border-color:#f6dcb0;border-left-color:#e09a2b}.note p{margin:4px 0}.note-inline{color:var(--amber);font-weight:500}.signin{max-width:420px;margin:11vh auto 0;display:flex;flex-direction:column;gap:14px;padding:32px 32px 28px;border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 40px #10182814}.signin h1{margin:0;font-size:24px;display:flex;align-items:center;gap:12px}.signin h1:before{content:"c";width:36px;height:36px;flex:none;border-radius:10px;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:21px;font-weight:700;line-height:1;padding-bottom:3px}.signin .btn.primary{min-height:42px;margin-top:4px}.stats{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:16px}.stat{flex:1;min-width:190px;margin:0;display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden;padding:18px 20px}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--blue)}.stat span{font-size:12px;color:var(--grey);font-weight:500}.stat strong{font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.filters{margin-bottom:12px}.filters .search{max-width:300px;margin:0}.filters select{width:auto}.timeline{list-style:none;margin:0;padding:0;position:relative}.timeline li{display:flex;gap:18px;padding:12px 0 12px 22px;border-bottom:1px solid var(--line-2);position:relative}.timeline li:before{content:"";position:absolute;left:2px;top:19px;width:9px;height:9px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.timeline li:last-child{border-bottom:0}.timeline .when{width:130px;flex:none;color:var(--grey);font-size:12px;padding-top:2px}.owner{margin-top:18px;padding-top:16px;border-top:1px dashed var(--line)}.owner h4{margin:0 0 8px;font-size:14px}.owner .row-form input[readonly]{font-family:var(--mono);font-size:12px;background:#f9fafc}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:14px 0 18px;flex-wrap:wrap}.tabs button{font:inherit;font-weight:550;background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:10px 16px;color:var(--grey);cursor:pointer;border-radius:6px 6px 0 0;transition:color .15s,background .15s}.tabs button:hover{color:var(--ink);background:#f8fafc}.tabs button.on{color:var(--blue-dark);border-bottom-color:var(--blue);font-weight:650}.tree-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px;padding:10px 12px;background:var(--bg);border:1px solid var(--line-2);border-radius:10px}.tree-bar .search{margin:0;max-width:260px}.tree-mod{border:1px solid var(--line);border-radius:10px;margin-bottom:8px;background:#fff;transition:border-color .15s,box-shadow .15s}.tree-mod:hover{border-color:#cbd6e4}.tree-mod.on{border-color:var(--blue-line);background:#fafdfe;box-shadow:inset 3px 0 0 var(--blue)}.tree-head{display:flex;align-items:center;gap:10px;padding:9px 12px}.chev{width:24px;height:24px;border:0;background:none;cursor:pointer;color:var(--grey);font-size:13px;padding:0;border-radius:6px}.chev:hover:not(:disabled){background:var(--line-2)}.chev:disabled{cursor:default}.tree-all{margin-left:auto;font-size:12px;color:var(--grey)}.tree-body{padding:4px 16px 12px 46px;display:flex;flex-direction:column;gap:2px}.tree-body.off{opacity:.6}.tree-group{padding:3px 0}.tree-actions{display:flex;gap:16px;flex-wrap:wrap;padding-left:26px}.check.strong span{font-weight:600}.check{margin:3px 0}.inner-card{background:var(--bg);box-shadow:none}details summary{cursor:pointer;color:var(--blue-dark);font-weight:550;margin:10px 0}.limit{align-items:center}.limit-key{min-width:170px}.limit input[type=number]{width:170px}.review{background:var(--blue-soft);border:1px solid var(--blue-line);border-radius:12px;padding:6px 18px 16px;margin-top:16px}.review ul{margin:8px 0;padding-left:20px}.review li{margin:3px 0}.cat-module{padding-bottom:10px}.cat-line{display:flex;align-items:center;gap:10px;padding:4px 0;flex-wrap:wrap}.cat-child{padding-left:30px}.cat-feature{border-top:1px solid var(--line-2);margin-top:6px;padding-top:5px}.name-edit{width:min(100%,340px);border-color:transparent;background:transparent;font-weight:600;box-shadow:none}.name-edit:hover{border-color:#cdd5e0;background:#fff}.cat-child .name-edit{font-weight:400}.add-feature{background:var(--bg);border:1px solid var(--line-2);border-radius:10px;padding:12px;margin-top:10px}@media (max-width: 900px){.top{position:sticky;width:auto;bottom:auto;flex-direction:row;align-items:center;gap:10px;padding:8px 14px;border-right:0;border-bottom:1px solid var(--line);overflow-x:auto}.brand{padding:0 6px 0 0;font-size:17px}.brand:before{width:28px;height:28px;font-size:16px}.top nav{flex-direction:row}.top nav a{padding:8px 12px;font-size:14px;white-space:nowrap}.top .muted{margin:0 0 0 auto;padding:0 6px;border:0;white-space:nowrap}.top .btn{margin:0}main{margin:0;padding:4px 16px 60px}}@media (max-width: 760px){.top{padding:0 14px;gap:10px}main{padding:4px 14px 60px}.card{padding:16px}h1{font-size:22px}.timeline .when{width:96px}.stat{min-width:140px}table{min-width:640px}.tablewrap{max-height:70vh}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.tablewrap{max-height:min(68vh,720px);overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff}.tablewrap table{border-collapse:separate}.tablewrap th{position:sticky;top:0;z-index:2;background:var(--bg);box-shadow:0 1px 0 var(--line);border-bottom:0}.tablewrap th:first-child,.tablewrap th:last-child{border-radius:0}.tablewrap tbody tr:last-child td{border-bottom:0}.pager{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:12px}.pager .btn.sm{margin-left:0;min-width:32px}.pager .btn.pg.on{background:var(--blue);border-color:var(--blue-dark);color:#fff}.pager-size{display:inline-flex;align-items:center;gap:8px;margin-right:10px}.pager-size select{width:auto;min-height:30px;padding:3px 28px 3px 10px;font-size:12px}th.num,td.num{width:52px;min-width:52px;text-align:right;padding-right:8px;color:var(--grey);font-variant-numeric:tabular-nums;font-size:12px}td.num{padding-top:15px}.nav-badge{display:inline-block;min-width:18px;padding:0 6px;margin-left:auto;border-radius:999px;font-size:11px;font-weight:700;line-height:18px;text-align:center;color:#fff}.nav-badge.red{background:#e5484d}.nav-badge.amber{background:#e09a2b}button.tile{font:inherit;text-align:left;cursor:pointer;border:1px solid var(--line)}button.tile:hover{border-color:#b9c8da}button.tile.on{border-color:var(--blue);box-shadow:var(--ring)}.stat strong.bad{color:var(--red)}.stat strong.warn{color:var(--amber)}.attn-group>p{margin-top:0}.info{position:relative;display:inline-flex;vertical-align:middle;margin-left:8px;outline:none}.info-icon{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--grey-2);color:var(--grey);font:700 11px/15px Inter,system-ui,sans-serif;text-align:center;cursor:help;-webkit-user-select:none;user-select:none;transition:border-color .15s,color .15s,background .15s}.info:hover .info-icon,.info:focus .info-icon{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.info-tip{position:absolute;z-index:30;top:calc(100% + 8px);left:-8px;width:290px;padding:12px 14px;background:#fff;color:var(--ink-2);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #10182824;font:400 12.5px/1.5 Inter,system-ui,sans-serif;text-transform:none;letter-spacing:0;text-align:left;white-space:normal;visibility:hidden;opacity:0;transform:translateY(-3px);transition:opacity .15s,transform .15s,visibility .15s;pointer-events:none}.info.end .info-tip{left:auto;right:-8px}.info:hover .info-tip,.info:focus .info-tip,.info:focus-within .info-tip{visibility:visible;opacity:1;transform:none}.stat-wrap{position:relative;flex:1;min-width:190px;display:flex}.stat-wrap>button.tile{flex:1}.stat-wrap>.info{position:absolute;top:14px;right:14px;margin:0}.top,main{transition:width .2s ease,margin-left .2s ease}.nav-icon{flex:none}.top nav a{gap:12px;position:relative}.side-toggle{display:flex;align-items:center;gap:12px;margin-top:10px;padding:9px 14px;border:0;border-radius:10px;background:none;color:var(--grey);font:inherit;font-size:13px;cursor:pointer;text-align:left}.side-toggle:hover{background:#f1f5f9;color:var(--ink)}.top .who{margin-top:auto}.top .signout{display:flex;align-items:center;gap:8px}.top.collapsed{padding:20px 10px}.top.collapsed .brand{padding-left:0;justify-content:center}.top.collapsed .brand-text,.top.collapsed .nav-label,.top.collapsed .who{display:none}.top.collapsed nav a{justify-content:center;padding:11px 0}.top.collapsed .nav-badge{position:absolute;top:3px;right:6px;margin:0;min-width:16px;line-height:16px;font-size:10px;padding:0 4px}.top.collapsed .side-toggle{justify-content:center;padding:9px 0}.top.collapsed .signout{margin:6px auto 0;padding:6px 8px;align-self:center}.top.collapsed .muted.who{display:none}@media (max-width: 900px){.side-toggle{display:none}.top .who{margin-top:0}.top.collapsed .nav-label,.top.collapsed .brand-text{display:inline}}.brand-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:22px}.brand-row .brand{padding:4px 8px}.top .side-toggle{margin:0;width:30px;height:30px;padding:0;justify-content:center;flex:none;border-radius:8px}.side-foot{margin-top:auto;display:flex;flex-direction:column;border-top:1px solid var(--line);padding-top:12px}.top .side-foot .who{margin:0;padding:0 10px 6px;border:0}.top .side-foot .signout{margin:6px 10px 0}.top.collapsed .brand-row{flex-direction:column;gap:6px;padding-bottom:16px}.top.collapsed .brand-row .brand{padding:0}.top.collapsed .side-foot{align-items:center}.top.collapsed .side-foot .signout{margin:6px 0 0}@media (max-width: 900px){.brand-row{padding-bottom:0}.side-foot{margin:0 0 0 auto;flex-direction:row;align-items:center;border:0;padding:0;gap:8px}.top .side-foot .who{padding:0 6px}.top .side-foot .signout{margin:0}}button.tile{cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .08s}button.tile:hover{border-color:#9fc3d6;box-shadow:0 2px 8px #006b9a1f}button.tile:active{transform:translateY(1px)}.card.stat.tile.on{border-color:var(--blue);background:var(--blue-soft);box-shadow:var(--ring)}.product-tile{cursor:default}.product-tile:hover{border-color:var(--line);box-shadow:var(--shadow)}.tile-title{align-self:flex-start;background:none;border:0;padding:0;font:inherit;font-size:12px;font-weight:600;color:var(--grey);text-transform:capitalize;cursor:pointer}.tile-title:hover{color:var(--blue);text-decoration:underline}.tile-status{display:flex;align-items:center;gap:6px;background:none;border:1px solid transparent;border-radius:8px;padding:2px 6px;margin:2px 0 0 -6px;font:inherit;font-size:12px;cursor:pointer}.tile-status:hover{background:#fff;border-color:var(--line)}.tile-status.on{background:#fff;border-color:var(--blue)}.stat-wrap>.card.stat{flex:1}.card.narrow{max-width:460px;display:flex;flex-direction:column;gap:14px}.side-foot .signout{margin-top:6px}.drawer-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50}.drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a59}.drawer{position:absolute;top:0;right:0;bottom:0;width:min(920px,96vw);background:var(--card, #fff);box-shadow:-8px 0 30px #0f172a33;display:flex;flex-direction:column;outline:none;animation:drawer-in .18s ease-out}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid var(--line)}.drawer-head h2{margin:0;font-size:18px}.drawer-body{padding:16px 20px 28px;overflow-y:auto}.drawer-body .card{box-shadow:none;border:0;padding:0}@keyframes drawer-in{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}@media (prefers-reduced-motion: reduce){.drawer{animation:none}}.stats.one-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stats.one-row .stat-wrap{min-width:0}.stats.one-row .stat{min-width:0;padding:16px 16px 16px 18px}.stats.one-row .stat strong{font-size:22px;overflow-wrap:anywhere}
