:root{--navy:#17283c;--ink:#172637;--muted:#657488;--line:#e4e9f0;--bg:#f5f7fa;--white:#fff;--blue:#285fca;--blue2:#eaf0ff;--red:#bb3c45;--green:#27845d;--orange:#d19b33}*{box-sizing:border-box}body{margin:0;background:var(--bg);font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink)}a{color:#285cbd;text-decoration:none}h1,h2,h3{line-height:1.22;letter-spacing:-.025em}h1{font-size:clamp(27px,3vw,36px);margin:.25rem 0 .5rem}h2{font-size:19px;margin:0 0 15px}h3{font-size:16px;margin:22px 0 10px}p{margin:8px 0 16px}.muted,small,.hint{color:var(--muted)}small{font-size:12px;display:block}.hint{font-size:13px}.eyebrow,.sidecaption{font-size:11px;letter-spacing:.12em;font-weight:750;color:#8794a5;margin:0}.topbar{height:70px;background:var(--navy);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 32px}.brand{color:white;font-size:22px;font-weight:800;letter-spacing:-.04em;display:flex;gap:10px;align-items:center}.brand small{font-size:10px;letter-spacing:.1em;background:#31465f;color:#cdd9eb;border-radius:5px;padding:3px 6px}.brandmark{display:grid;place-items:center;background:#5c89f2;color:white;width:28px;height:28px;border-radius:8px;font-size:20px}.account{display:flex;gap:18px;align-items:center}.account form{margin:0}.username{color:#d4dfed;font-size:14px}.textbtn{background:transparent;border:0;color:#b8c7dc;cursor:pointer}.shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:calc(100vh - 70px)}.sidebar{background:#fff;border-right:1px solid var(--line);padding:30px 15px;display:flex;flex-direction:column;gap:6px}.sidecaption{margin:0 14px 15px}.sideitem{color:#3f4f63;padding:12px 14px;border-radius:10px;display:flex;gap:13px;align-items:center;font-size:15px;font-weight:570}.sideitem:hover,.sideitem:focus{background:#eef3fc;color:#2354ad}.sidehint{margin-top:auto;padding:20px 14px;font-size:12px;color:#9ba7b6}.main{max-width:1460px;width:100%;padding:34px 42px 90px;margin:auto}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:28px}.pagehead .muted{margin:4px 0}.btn{display:inline-flex;justify-content:center;align-items:center;gap:6px;background:white;border:1px solid #cfd8e4;border-radius:9px;padding:10px 17px;color:#344b67;font-weight:680;font:inherit;font-weight:650;cursor:pointer;min-height:42px;white-space:normal;text-align:center}.btn:hover{background:#f5f8fd}.btn.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.btn.primary:hover{background:#1849a7}.btn.ghost{border-color:transparent;background:transparent}.btn.small{font-size:13px;min-height:33px;padding:6px 11px}.btn.block{display:flex;width:100%}.dangerbtn{color:var(--red);border-color:#e6c6c7}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:22px}.stat{background:#fff;border:1px solid var(--line);border-radius:13px;padding:23px;box-shadow:0 3px 12px #26364b05;color:inherit}.statnum{font-size:32px;font-weight:800;line-height:1.1}.statnum.danger{color:var(--red)}.statlabel{color:var(--muted);font-size:13px;margin-top:7px}.twocol{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);gap:20px;align-items:start}.stack{display:flex;flex-direction:column;gap:20px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:23px;box-shadow:0 3px 16px #26364b07;min-width:0}.panel.highlight{background:#fbfcff;border-color:#dae5fc}.sectionhead{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:10px}.sectionhead h2{margin:0}.sectionhead a{white-space:nowrap;font-size:13px}.taskrow,.compactrow{display:flex;align-items:center;gap:13px;padding:14px 0;border-bottom:1px solid var(--line);color:var(--ink)}.taskrow:last-child,.compactrow:last-child{border-bottom:0}.taskrow>div,.compactrow>div{flex:1;min-width:0}.taskrow strong,.compactrow strong{display:block;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.taskrow small,.compactrow small{margin-top:4px}.taskicon{font-size:13px;color:#4a8dde}.taskicon.late{color:var(--red)}.pill{font-size:11px;font-weight:720;color:#47607b;background:#f0f4f8;padding:5px 8px;border-radius:7px;display:inline-block;white-space:nowrap}.pill.danger{color:#a83842;background:#ffeded}.pill.success{color:var(--green);background:#e5f6ed}.pill.warning{color:#9c7125;background:#fff1d5}.empty{padding:40px 15px;text-align:center;color:#8695a6}.meta{display:flex;gap:7px;flex-wrap:wrap}.details{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}.details strong{display:block}.details small{margin-bottom:2px}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}.comment{padding:13px 0;border-bottom:1px solid var(--line)}.comment p{margin:8px 0}.comment small{display:inline}.route{border:1px solid #e3eaf4;border-radius:10px;padding:12px;margin-bottom:14px}.approval{border-top:1px solid #eff1f5;padding:12px 0}.approval .pill{margin-left:5px}.decisionbuttons,.formactions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:17px}.filters{display:flex;gap:10px;margin-bottom:17px}.filters input{flex:1}label{display:block;font-weight:650;font-size:13px;margin:14px 0;color:#46586e}input,select,textarea{display:block;width:100%;margin-top:6px;border:1px solid #ccd7e3;border-radius:9px;background:#fff;padding:11px 12px;font:inherit;color:var(--ink);font-weight:450;outline:none;max-width:100%}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:#5182df;box-shadow:0 0 0 3px #5182df20}select[multiple]{min-height:110px}.formpanel{max-width:780px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}hr{border:0;border-top:1px solid var(--line);margin:22px 0}.notice{padding:13px;background:#ebf7f0;color:#236b49;border-radius:9px}.linkcode{font-size:30px;letter-spacing:.16em;font-weight:800;background:#eef3fb;padding:18px;text-align:center;border-radius:10px;margin:15px 0}.worktable{min-width:720px}.workrow{display:grid;grid-template-columns:185px repeat(5,minmax(95px,1fr));align-items:center;border-bottom:1px solid var(--line);gap:12px;padding:14px 0}.workrow:last-child{border:0}.workhead{font-size:12px;font-weight:800;color:var(--muted)}.workname small{margin-top:4px}.workcell strong{font-size:13px}.workbar{height:7px;border-radius:10px;background:#ecf0f5;margin-bottom:6px;overflow:hidden}.workbar span{display:block;height:100%;border-radius:10px}.workbar .free{background:#52b18b}.workbar .busy{background:#edb853}.workbar .over{background:#dd6b73}.loginwrap{min-height:100vh;display:grid;place-items:center;padding:30px}.loginbox{background:#fff;border:1px solid var(--line);padding:36px;border-radius:18px;box-shadow:0 12px 45px #112c4b12;width:min(440px,100%)}.loginbox h1{text-align:center}.loginbox>.muted{text-align:center;margin-bottom:28px}.loginlogo{width:55px;height:55px;background:#285fca;color:#fff;font-size:35px;display:grid;place-items:center;border-radius:13px;margin:auto}.loginbox .hint{margin-top:22px}.error{background:#ffe9eb;color:#a1353f;padding:11px;border-radius:7px}.mobilebar{display:none}code{background:#eaf0f6;border-radius:4px;padding:2px 5px}@media(max-width:1050px){.twocol{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.main{padding:24px 22px 90px}.worktable{overflow:auto}.panel:has(.worktable){overflow-x:auto}}@media(max-width:700px){.topbar{height:58px;padding:0 16px}.brand{font-size:20px}.username,.sidebar{display:none}.shell{display:block;min-height:calc(100vh - 58px)}.main{padding:22px 12px 98px}.pagehead{align-items:flex-start;flex-direction:column;gap:10px;margin-bottom:16px}h1{font-size:27px}.panel{padding:18px;border-radius:11px}.stats{gap:9px}.stat{padding:17px 12px}.statnum{font-size:27px}.statlabel{font-size:12px}.formgrid{grid-template-columns:1fr}.details{gap:12px}.filters{flex-wrap:wrap}.filters input{min-width:100%}.filters select{flex:1}.taskrow{align-items:flex-start}.taskrow .pill{margin-left:auto}.mobilebar{display:flex;position:fixed;bottom:0;left:0;right:0;justify-content:space-around;align-items:center;background:#fff;border-top:1px solid #dae2ea;height:calc(62px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);z-index:10}.mobilebar a{color:#617287;font-size:22px;display:flex;align-items:center;flex-direction:column;width:20%}.mobilebar span{font-size:10px;margin-top:0}.mobilebar a.mobileplus{color:#255cc2}.loginwrap{padding:15px}.loginbox{padding:25px}.decisionbuttons .btn{flex:1}}

/* TaskFlow v0.2: readable role selectors & task hierarchy */
.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.role-picker{border:1px solid var(--line);padding:16px;border-radius:12px;min-width:0}.role-picker h3{margin:0 0 7px}.role-picker .hint{margin:0 0 12px}.check-grid{display:grid;gap:6px;max-height:210px;overflow:auto;padding:5px 0 12px}.check-item{display:flex;align-items:center;gap:10px;font-weight:500;margin:0;padding:9px 10px;border-radius:8px;background:#f5f8fc;cursor:pointer}.check-item input{width:17px;height:17px;margin:0;flex-shrink:0}.hierarchy-crumb{margin:-9px 0 19px;color:var(--muted);font-size:14px}@media(max-width:700px){.role-grid{grid-template-columns:1fr}.role-picker{padding:13px}}
