:root{--ink:#272a3f;--muted:#8b90a4;--purple:#8b46a4;--lilac:#f7f0fa;--blue:#22a9d7;--bg:#f6f7fa;--line:#e9eaf0;--white:#fff;--green:#269d77;--amber:#d39326;--red:#cb6262}*{box-sizing:border-box}body{margin:0;background:var(--bg);font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px}.brand .mark{display:grid;place-items:center;background:linear-gradient(135deg,#af6ab5,#763991);width:43px;height:43px;border-radius:13px;color:#fff;font-size:23px;font-weight:800}.brand b{display:block;font-size:18px;color:#754092}.brand small{display:block;color:var(--muted);font-size:11px;margin-top:-2px}.top-actions{display:flex;align-items:center;gap:12px}.secure{font-size:12px;color:#6b8f77}.iconbtn{border:1px solid var(--line);border-radius:10px;background:white;font-size:19px;width:38px;height:36px;color:#777}.shell{display:flex;min-height:calc(100vh - 74px)}.sidebar{width:258px;flex:none;background:white;border-right:1px solid var(--line);padding:27px 16px 24px;display:flex;flex-direction:column;gap:12px}.side-title{font-size:11px;letter-spacing:1.6px;color:#a4a7b1;font-weight:800;padding:0 16px;display:flex;justify-content:space-between}.side-title.extra{margin-top:17px}.refresh{border:none;background:none;color:#8c91a7;font-size:18px;padding:0}.tabs{display:grid;gap:3px}.tabs button,.epic-nav button{width:100%;border:0;text-align:left;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:11px;background:transparent;color:#676d83;font-weight:600}.tabs button{font-size:15px}.tabs button span{flex:1}.tabs button:hover,.epic-nav button:hover{background:#faf6fc}.tabs button.active,.epic-nav button.active{background:#f8eef9;color:#82469a}.count{font-style:normal;font-size:11px;padding:0 7px;background:#f4e3ef;border-radius:99px;color:#854e8c}.epic-nav{display:grid;gap:3px}.epic-nav button{font-size:12px;line-height:1.25}.epic-nav button span{flex:1}.epic-nav button em{font-size:11px;color:#a3a6b4;font-style:normal}.side-foot{font-size:11px;line-height:2;border-top:1px solid var(--line);padding:17px 12px 0;margin-top:auto;color:#7e8290}.pulse{display:inline-block;width:8px;height:8px;background:#35bd8c;border-radius:50%;margin-right:5px}.tiny{color:#a7a8b1}.content{flex:1;min-width:0;padding:42px clamp(20px,4vw,65px);max-width:1440px;margin:auto}.page-head{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:32px}.eyebrow{color:#a372b4;font-size:11px;font-weight:800;letter-spacing:1.4px}.page-head h1{font-size:32px;line-height:1.2;margin:10px 0 8px;letter-spacing:-.7px}.page-head p{color:#898d9b;margin:0;font-size:14px}.primary{border:0;background:linear-gradient(105deg,#994eae,#8152b2);box-shadow:0 7px 18px #8544aa22;color:white;font-weight:700;border-radius:11px;padding:13px 19px;white-space:nowrap}.primary:hover{filter:brightness(1.06)}.secondary{border:1px solid #e1daed;background:#fff;color:#82529b;padding:10px 15px;border-radius:10px;font-weight:700}.danger{color:#c55e66}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:30px}.stat{border:1px solid var(--line);background:#fff;border-radius:17px;padding:22px 22px 18px;min-height:120px;position:relative;overflow:hidden}.stat::after{position:absolute;content:"";right:-20px;top:-20px;width:90px;height:90px;border-radius:50%;background:#f8f2fa}.stat .num{font-size:33px;display:block;line-height:1.3;font-weight:800;letter-spacing:-1px}.stat .lbl{font-size:12px;color:#8e91a0}.stat.alert .num{color:#9c519c}.stat.success .num{color:#239f86}.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;margin-bottom:19px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px}.panel-head h2{font-size:18px;margin:0}.panel-head small{color:var(--muted)}.progress{height:9px;background:#eeeef3;border-radius:30px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,#ab77c3,#39a5c7);border-radius:30px;transition:width .3s}.epic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.epic-card{border:1px solid #eeeef2;background:#fff;border-radius:16px;padding:22px;text-align:left;min-height:125px;transition:box-shadow .15s,border-color .15s}.epic-card:hover{box-shadow:0 7px 20px #3927470d;border-color:#d6c7df}.epic-card strong{font-size:14px;display:block;margin-bottom:10px}.epic-card .meta{display:flex;justify-content:space-between;gap:5px;margin-bottom:12px;color:var(--muted);font-size:12px}.hint{font-size:12px;color:var(--muted)}.rows{display:grid;gap:9px}.taskrow{background:white;border:1px solid var(--line);border-radius:12px;padding:15px 18px;display:flex;align-items:center;gap:13px;text-align:left;width:100%;color:var(--ink);transition:border-color .15s}.taskrow:hover{border-color:#cdaed6}.taskrow .taskname{flex:1;min-width:0;font-weight:600}.taskrow small{display:block;font-size:11px;color:var(--muted);font-weight:400}.taskrow.is-sub{margin-left:25px;width:calc(100% - 25px);background:#fbfbfd}.taskrow.is-done .taskname{text-decoration:line-through;color:#9fa1ad}.dot{display:inline-block;width:13px;height:13px;border-radius:50%;border:2px solid #c4c9d5;flex:none}.dot.done{border-color:#52b59a;background:#52b59a}.dot.doing{border-color:#ab75c2;background:#ab75c2}.dot.review{border-color:#39a5cd;background:#39a5cd}.dot.blocked{border-color:#df9d63;background:#df9d63}.status{font-size:11px;white-space:nowrap;background:#f4f4f7;border-radius:40px;padding:4px 9px;color:#80849a}.status.done{background:#eaf8f2;color:#298f70}.status.doing{background:#f5eafb;color:#9250a7}.status.review{background:#e8f6fb;color:#258da9}.status.blocked{background:#fff2e7;color:#b77a29}.status.archived{background:#f6f6f7;color:#9a9caa}.filterline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:17px}.filterline input{min-width:220px;flex:1}.filterline input,.filterline select,.field input,.field textarea,.field select{border:1px solid #e3e5ed;border-radius:10px;padding:11px 13px;background:#fff;color:#323244;outline:none;width:100%}.filterline input:focus,.field input:focus,.field textarea:focus,.field select:focus{border-color:#a779b5;box-shadow:0 0 0 3px #bd8ed520}.filterline select{width:auto}.question{background:#fff;border:1px solid var(--line);border-radius:16px;padding:23px;margin-bottom:15px}.question h3{font-size:17px;margin:0 0 7px}.question .body{color:#797d8c;margin:0 0 15px}.question .options{display:grid;gap:8px;margin:14px 0}.choice{border:1px solid #e9e7f0;background:#fff;border-radius:10px;padding:11px 14px;display:flex;gap:10px;cursor:pointer}.choice:has(input:checked){background:#faf1fd;border-color:#b98ac7}.choice input{accent-color:#9153a7}.question input[type=text]{padding:10px;border:1px solid #e6e6ef;border-radius:9px;width:100%}.question .submit{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:13px}.question.answered{border-left:4px solid #6bbaa2}.answer{color:#25836d;font-weight:700;background:#eff9f4;border-radius:9px;padding:13px}.question .date,.eventtime{font-size:11px;color:#9a9eab}.logline{padding:15px 2px;border-bottom:1px solid #f1f1f4;display:flex;gap:13px}.logline:last-child{border:0}.logicon{display:grid;place-items:center;background:#f6eef9;border-radius:10px;min-width:36px;height:36px;color:#9b66ac}.logtxt{flex:1;min-width:0}.logtxt strong{display:block;font-size:13px}.logtxt small{display:block;color:#848b99;margin:3px 0}.empty{background:#fff;border:1px dashed #e1e1e8;border-radius:15px;padding:45px 25px;text-align:center;color:#9096a4}.modal-screen{position:fixed;inset:0;background:#27203488;z-index:40;display:flex;align-items:center;justify-content:center;padding:18px;overflow-y:auto}.modal{width:100%;max-width:655px;background:#fff;border-radius:18px;padding:28px;max-height:92vh;overflow:auto;box-shadow:0 20px 80px #16102050}.modal h2{margin:0 0 19px;font-size:22px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.close{background:none;border:none;font-size:25px;color:#7a7a89;line-height:1}.field{margin-bottom:17px}.field label{font-weight:650;font-size:12px;display:block;margin-bottom:6px;color:#606375}.field textarea{resize:vertical;min-height:90px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{display:flex;align-items:center;gap:10px;justify-content:flex-end;margin-top:16px}.children{border-top:1px solid #eee;margin-top:22px;padding-top:16px}.children strong{display:block;margin-bottom:12px}.childline{padding:8px 0;border-bottom:1px solid #f4f4f5}.childline button{border:0;background:none;text-align:left;color:#5c6072;cursor:pointer}.smallbtn{background:#f6eafa;color:#9054a0;border:0;padding:9px 13px;border-radius:9px;font-weight:700;font-size:12px}.comments{margin-top:20px}.comment{padding:11px 0;border-bottom:1px solid #f1f1f4}.comment small{display:block;color:#a1a3ac}.tag{font-size:11px;color:#8a5a99;background:#f7eef9;padding:3px 9px;border-radius:10px}.stack{display:grid;gap:10px}#toast{position:fixed;right:20px;bottom:22px;z-index:60;background:#333042;color:#fff;border-radius:12px;padding:13px 18px;box-shadow:0 12px 25px #0003;display:none;max-width:350px}#toast.show{display:block}.loading{text-align:center;padding:80px;color:#999}.heading-action{display:flex;justify-content:space-between;align-items:center;gap:18px}.muted{color:#969baa}.textlink{color:#9555aa;font-size:13px;border:0;background:none;font-weight:700;padding:4px}.section-sub{color:#a0a2af;font-size:12px;margin:8px 0 15px}@media(max-width:850px){.sidebar{width:205px}.content{padding:29px 23px}.stats{grid-template-columns:repeat(2,1fr)}.epic-grid{grid-template-columns:1fr}.page-head h1{font-size:26px}}@media(max-width:620px){.topbar{padding:0 15px;height:62px}.brand b{font-size:15px}.secure{display:none}.brand .mark{width:36px;height:36px}.shell{display:block}.sidebar{width:100%;display:block;padding:12px 15px;border-bottom:1px solid var(--line)}.sidebar .side-title,.epic-nav,.side-foot{display:none}.tabs{display:flex;overflow:auto;gap:6px}.tabs button{padding:10px;font-size:13px;white-space:nowrap}.content{padding:23px 15px}.page-head{align-items:flex-start}.page-head h1{font-size:24px}.page-head p{font-size:12px}.page-head .primary{padding:10px 12px;font-size:12px}.stat{padding:15px}.stat .num{font-size:27px}.taskrow{padding:13px 12px}.status{font-size:10px}.field-grid{grid-template-columns:1fr}.modal{padding:21px}.question{padding:16px}}body.login-page{background:linear-gradient(150deg,#f8f2fb,#eaf7fd);min-height:100vh;display:grid;place-items:center;padding:20px}.login{background:white;padding:35px;border-radius:22px;box-shadow:0 20px 60px #5c3d7c22;width:min(420px,100%)}.login h1{font-size:24px;margin:20px 0 6px}.login p{color:#8990a0}.login input{width:100%;padding:14px;border:1px solid #dedde9;border-radius:12px;margin:17px 0}.login button{width:100%}.error{color:#c15a64;font-size:12px;min-height:20px}
