:root{color-scheme:dark;--bg:#0a1223;--panel:#142039;--panel2:#1b2b47;--input:#0e1a30;--line:#314560;--text:#eef5ff;--muted:#a9bdd5;--blue:#9dd8ff;--mint:#82e0be;--gold:#ffd18e;--red:#ffb2b4;--purple:#b7a8ff}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;color:var(--text);background:radial-gradient(ellipse at 86% -18%,#243c68 0,transparent 47%),var(--bg);font-family:system-ui,-apple-system,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;line-height:1.55}button,input,textarea,select{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:42px}input,textarea,select{min-width:0;max-width:100%;font-size:16px!important}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.app{max-width:1180px;margin:auto;padding:24px 20px 70px}.top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap}.eyebrow{font-size:11px;font-weight:900;color:var(--blue);letter-spacing:.17em}.eyebrow.mini{font-size:10px}.dot{color:var(--mint);font-size:9px}.top h1{font-size:clamp(30px,5vw,43px);letter-spacing:-.05em;margin:3px 0 0;font-weight:900}.top h1 span{font-size:.72em}.sub{margin:4px 0 0;color:var(--muted);font-size:13px}.headerButtons,.flex{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.btn{color:var(--text);border-radius:12px;padding:11px 14px;background:var(--panel2);border:1px solid var(--line);font-weight:800}.btn:hover{filter:brightness(1.12)}.btn.accent{background:var(--blue);color:#102846;border-color:var(--blue)}.btn.primary{background:#254c65;border-color:#3f708c}.btn.tiny{font-size:12px;padding:7px 10px;min-height:36px}.btn.thin{background:transparent}.btn.danger{background:transparent;color:var(--red);border-color:#774955}.btn.full{width:100%;margin:7px 0;text-align:center}.saveLine{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;background:#12233a;border:1px solid var(--line);border-radius:12px;padding:9px 14px;margin-top:21px}.saveText{font-size:12px;color:var(--muted);font-weight:750}.saveText.ok{color:var(--mint)}.saveText.fail{color:var(--red)}.textButton{border:0;background:transparent;color:var(--blue);font-weight:850;min-height:30px;font-size:12px;padding:4px}.alert{padding:12px 15px;margin-top:15px;color:#ffe6a6;background:#4e3923;border-radius:12px}.boot{font-size:13px}.hide{display:none!important}.switchPanel{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 12px}.switchGroup{display:flex;align-items:center;gap:10px;padding:10px 11px;background:#15233a;border:1px solid var(--line);border-radius:16px}.switchLabel{font-size:11px;letter-spacing:.07em;font-weight:900;color:var(--muted);white-space:nowrap}.seg{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:6px}.seg button{border:1px solid transparent;background:#25354d;color:#b9c7d8;padding:9px 11px;border-radius:10px;font-weight:850}.seg button.on{background:var(--blue);color:#09223a}.overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 23px}.overview button{display:flex;flex-direction:column;gap:7px;background:#121f34;color:var(--text);border:1px solid var(--line);border-radius:13px;padding:12px;text-align:left}.overview button.active{border-color:#97ccf0;background:#233851}.overview small{color:var(--muted);font-size:11px}.overview b{font-size:17px}.overview strong{color:var(--mint);font-size:12px}.sectionheading{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-top:15px;flex-wrap:wrap}.sectionheading h2{font-size:26px;letter-spacing:-.04em;margin:0}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:13px 0 17px}.stat{border-radius:16px;background:var(--panel);padding:16px;border:1px solid var(--line)}.stat .label{color:var(--muted);font-size:12px;font-weight:800}.stat .value{font-size:26px;font-weight:900;margin-top:4px;letter-spacing:-.03em}.stat .detail{font-size:11px;color:var(--muted);margin-top:3px}.pane{border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:19px;margin-top:17px;min-width:0}.panehead{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:11px}.panehead h3,.fieldSection h3{font-size:17px;margin:0}.panehead p{margin:3px 0 0;color:var(--muted);font-size:12px}.filterRow{display:flex;gap:8px;flex-wrap:wrap}.filterRow select{border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--text);padding:10px}.years{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:18px}.year{min-height:153px;padding:14px;display:flex;flex-direction:column;justify-content:space-between;gap:7px;border:1px solid var(--line);border-radius:13px;background:#0e1c32;text-align:left;color:var(--text)}.year:hover{background:#1a304b;border-color:var(--blue)}.yTop{display:flex;justify-content:space-between;align-items:center;gap:6px}.yr{font-weight:900;font-size:22px;letter-spacing:-.04em}.tag{border-radius:999px;padding:4px 8px;background:#283950;color:#c9daeb;font-size:10px;font-weight:900;white-space:nowrap}.tag.done{background:#a0e8cc;color:#173c30}.tag.review{background:#ffdb9e;color:#5c3a05}.tag.progress{background:#aad8ff;color:#173d62}.bigScore{font-size:16px;font-weight:900}.scoreCaption{font-size:11px;color:var(--muted)}.progressBar{background:#2b425a;border-radius:18px;height:6px;overflow:hidden;margin-top:7px}.progressBar>div{background:linear-gradient(90deg,#75b9f4,#8ce4d1);height:100%;border-radius:18px}.qMini{font-size:11px;color:#a9d9fa;font-weight:800}.analytics{display:grid;grid-template-columns:1.2fr 1fr;gap:15px}.analytics>.pane{min-width:0}.chart{height:220px;display:flex;gap:7px;overflow-x:auto;margin-top:15px;padding-bottom:4px}.barItem{min-width:40px;display:flex;flex:1;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.barBase{width:100%;height:176px;border-bottom:1px solid #56718e;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.barVal{font-size:10px;font-weight:850}.barShape{width:min(32px,80%);border-radius:5px 5px 0 0;background:linear-gradient(#a4deff,#63b1ef);min-height:2px}.barYear{font-size:10px;color:var(--muted)}.qstat{margin:15px 0;display:flex;align-items:center;gap:12px}.qstat .qname{width:58px;flex-shrink:0;font-size:12px;font-weight:900}.qstat .meter{flex:1;height:12px;background:#2b3c55;border-radius:99px;overflow:hidden}.qstat .meter>div{height:100%;background:linear-gradient(90deg,#9b8cfc,#9ad7ff)}.qstat .qvalue{min-width:86px;text-align:right;font-size:12px;font-weight:850}.empty{padding:22px 10px;text-align:center;color:var(--muted);font-size:13px}.reviewEntry{padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#0f1d34;display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;color:var(--text);width:100%;margin-top:8px;font-weight:800}.reviewEntry span{font-size:12px;color:var(--gold)}footer{margin-top:25px;color:var(--muted);line-height:1.8;font-size:12px}dialog{width:min(830px,calc(100% - 22px));max-height:min(94dvh,1000px);overflow:auto;background:#142139;color:var(--text);border:1px solid #51708e;border-radius:18px;padding:0;box-shadow:0 35px 95px #000a}dialog.smallDialog{width:min(570px,calc(100% - 20px))}dialog::backdrop{background:#000b}.modalHeader{padding:18px 21px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px}.modalHeader h2{font-size:21px;margin:1px 0 0}.iconButton{border-radius:10px;background:#283c59;border:1px solid var(--line);color:var(--text);min-width:42px;font-size:19px}.modalBody{padding:20px 21px}.modalBody>p{font-size:13px;color:var(--muted)}.modalFooter{position:sticky;bottom:0;background:#192942;border-top:1px solid var(--line);padding:13px 19px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;z-index:2}.formrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.formrow.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#b4cce2;font-weight:800}.field input,.field select,.field textarea,.modalBody>textarea{width:100%;padding:11px 12px;min-height:44px;background:var(--input);color:var(--text);border:1px solid #405875;border-radius:10px}.field textarea,.modalBody>textarea{resize:vertical;line-height:1.5}.fieldSection{margin:20px 0 14px;padding-top:14px;border-top:1px solid var(--line)}.subtle{font-size:12px!important;color:var(--muted);line-height:1.7;margin:9px 0}.qList{display:grid;gap:11px;margin-top:12px}.qCard{padding:14px;border:1px solid #35516e;background:#0f1d34;border-radius:14px}.qCardTop{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:11px}.qCardTop h4{margin:0;font-size:15px}.qCardTop label{font-size:12px;color:var(--gold);font-weight:850;display:flex;align-items:center;gap:6px}.qCardTop input{width:19px;height:19px;accent-color:#d9b37d}.qGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.qExtra{display:grid;grid-template-columns:1fr 2fr;gap:10px;margin-top:9px}.scoreSummary{background:#203a57;border:1px solid #577c9e;border-radius:14px;padding:13px 15px;margin-top:17px;font-size:13px}.scoreSummary strong{font-size:21px;display:block}.scoreSummary span{color:var(--muted)}.scoreSummary.warning{border-color:#a18b56}.separator{height:1px;background:var(--line);margin:16px 0}.toast{position:fixed;z-index:100;bottom:calc(18px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:calc(100% - 20px);background:#c9f6e5;border-radius:12px;box-shadow:0 8px 28px #0008;color:#103e33;font-size:13px;font-weight:850;padding:11px 16px;pointer-events:none;opacity:0;transition:opacity .2s}.toast.visible{opacity:1}@media(max-width:800px){.app{padding:17px 14px 65px}.overview{grid-template-columns:repeat(2,minmax(0,1fr))}.years{grid-template-columns:repeat(3,minmax(0,1fr))}.analytics{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:590px){.switchPanel{grid-template-columns:1fr}.switchGroup{padding:8px}.years{grid-template-columns:repeat(2,minmax(0,1fr))}.year{padding:12px;min-height:147px}.yr{font-size:20px}.pane{padding:13px}.stat{padding:13px}.stat .value{font-size:25px}.modalHeader{padding:13px 15px}.modalBody{padding:13px 15px}.modalFooter{padding:12px}.formrow,.formrow.two{grid-template-columns:repeat(2,minmax(0,1fr))}.qGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.qExtra{grid-template-columns:1fr}.qCard{padding:11px}.modalFooter .btn{font-size:12px;padding:9px 10px}.sectionheading h2{font-size:22px}.headerButtons .btn{font-size:12px}.filterRow{width:100%}.filterRow select{flex:1;min-width:0}.panehead h3{font-size:16px}}@media(max-width:370px){.headerButtons{width:100%}.headerButtons .btn{flex:1}.qGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.qGrid .field:last-child{grid-column:1/-1}.formrow{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:no-preference){.year,.btn,.seg button{transition:filter .15s,background .15s,transform .15s}.year:active{transform:scale(.98)}}
