:root{font-family:"Malgun Gothic","Apple SD Gothic Neo",system-ui,sans-serif;color:#18253d;background:#f4f7fb;font-size:16px;line-height:1.65;--blue:#244ad6;--navy:#152b50;--muted:#5e6b80;--line:#dce3ee;--soft:#edf2ff;--red:#b33b40}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);background:white;color:var(--navy);padding:.6rem 1rem;border-radius:9px;font-weight:600}button:hover{background:#edf2ff;border-color:#a6b8ed}button:disabled{opacity:.55;cursor:not-allowed}a{color:var(--blue);text-underline-offset:3px}button.primary{background:var(--blue);color:white;border-color:var(--blue)}button.danger{color:var(--red)}button.small{padding:.35rem .7rem;font-size:.875rem}button.link{border:0;background:transparent;padding:.2rem;color:var(--blue)}:focus-visible{outline:3px solid #df9900;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:1.85rem;line-height:1.35;letter-spacing:-.04em;margin-bottom:.55rem}h2{font-size:1.25rem;letter-spacing:-.025em;margin-bottom:1rem}h3{font-size:1.05rem;margin-bottom:.5rem}small,.meta{font-size:.875rem;color:var(--muted)}.muted{color:var(--muted)}.shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--navy);color:white;padding:32px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{font-size:1.45rem;font-weight:750;letter-spacing:-.05em;margin-bottom:4px}.brand-sub{font-size:.875rem;color:#bfccdf;margin-bottom:32px}.sidebar label{color:#ced9ec;font-size:.875rem}.sidebar select{margin:8px 0 22px;width:100%;background:#223b60;color:white;border:1px solid #587091}.sidebar nav{display:grid;gap:8px}.sidebar nav button{text-align:left;background:transparent;border:0;color:#d1daea;padding:12px 14px}.sidebar nav button.active{background:white;color:var(--navy)}.sidefoot{margin-top:auto;padding-top:35px;font-size:.875rem;color:#becde2}.content{min-width:0}.topbar{background:white;border-bottom:1px solid var(--line);padding:17px 36px;display:flex;justify-content:space-between;align-items:center;gap:12px}.topbar .tag{font-size:.875rem}.main{max-width:1240px;margin:auto;padding:32px 36px 70px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.stack{display:grid;gap:18px}.columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:24px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:24px}.banner{background:var(--navy);color:white;padding:26px;border-radius:14px;display:flex;justify-content:space-between;align-items:center;gap:20px;margin:24px 0}.banner p{color:#dce6f8;margin:0}.banner .big{font-size:2.4rem;font-weight:750;line-height:1.1}.tag{display:inline-block;background:var(--soft);color:#254da3;border-radius:5px;padding:3px 8px;font-size:.8125rem;font-weight:600}.tag.warn{background:#fff1db;color:#885119}.tag.danger{background:#ffebed;color:#a92c36}.tag.good{background:#e2f5ef;color:#13614a}.empty{border:1px dashed #b5c2d8;padding:30px;border-radius:12px;background:#fafcff}.empty p{color:var(--muted);max-width:620px}.empty h2{margin-bottom:8px}.task{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:14px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.task:last-child{border:0}.task .number{background:var(--soft);border-radius:50%;width:32px;height:32px;display:grid;place-content:center;color:var(--blue);font-weight:700}.task.done .number{background:#e2f5ef;color:#13614a}.task.done .task-title{color:var(--muted)}.task-title{font-weight:650}.progress{height:8px;background:#e6ebf5;border-radius:8px;overflow:hidden;margin-top:14px}.progress progress{width:100%;height:8px;display:block;accent-color:var(--blue)}.item{padding:18px 0;border-bottom:1px solid var(--line)}.item:last-child{border-bottom:0}.item p{margin:.6rem 0;white-space:pre-wrap;overflow-wrap:anywhere}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.topic{border-left:3px solid var(--blue);padding:8px 0 8px 14px;margin:16px 0}.topic p{margin:4px 0}.time-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line)}.time-row:last-child{border:0}input,select,textarea{width:100%;padding:10px 12px;border:1px solid #abb9ce;border-radius:8px;background:#fff;color:#192b47;min-width:0}textarea{resize:vertical;min-height:95px}label{display:block;font-weight:600;font-size:.9375rem;margin-bottom:6px}.field{margin-bottom:17px}.help{font-size:.875rem;color:var(--muted);margin-top:5px}.checks{display:flex;gap:18px;flex-wrap:wrap}.checks label{display:flex;gap:8px;align-items:center;font-weight:400}.checks input{width:auto}.form-footer{border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:flex-end;gap:10px;margin-top:20px}dialog{border:0;border-radius:16px;box-shadow:0 24px 80px #11234044;width:min(850px,94vw);max-height:91vh;padding:0;color:#18253d}dialog::backdrop{background:#15264080}.modal-head{padding:20px 26px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px;position:sticky;top:0;background:white;z-index:2}.modal-head h2{margin:0}.modal-body{padding:24px 26px}.attachment{max-width:100%;max-height:430px;object-fit:contain;background:#edf1f8;border-radius:8px}.pdf{width:100%;height:430px;border:1px solid var(--line)}.choice{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);padding:13px;border-radius:9px;margin:10px 0;font-weight:400}.choice input{width:auto;margin-top:6px}.result{padding:20px;border-radius:10px;background:#e9f5ef;margin:20px 0}.result.wrong{background:#fff0ee}.result p{white-space:pre-wrap}.reveal{background:#f0f4fb;border-radius:10px;padding:20px;margin:18px 0;white-space:pre-wrap}.material{border:1px solid var(--line);padding:16px;border-radius:10px;display:flex;flex-direction:column;gap:8px}.material h3{overflow-wrap:anywhere;font-size:1rem}.material-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.material .actions{margin-top:auto}.filters{display:grid;grid-template-columns:minmax(160px,1fr) 180px 180px;gap:12px;margin:20px 0}.score-table{width:100%;border-collapse:collapse;font-size:.9375rem}.score-table th,.score-table td{padding:10px 8px;text-align:left;border-bottom:1px solid var(--line)}.table-wrap{overflow:auto}.score{font-size:1.5rem;font-weight:700}.notice{border-left:3px solid #d49a28;padding:10px 14px;background:#fff8e9;font-size:.9375rem;margin:16px 0}.error{color:#a62c37;background:#fff0ef;padding:12px;border-radius:8px;margin:12px 0}.hidden{display:none!important}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#172c4e;color:white;box-shadow:0 4px 22px #0002;border-radius:10px;padding:12px 22px;z-index:100;max-width:90vw;display:none}.skip{position:absolute;top:-80px;left:20px;z-index:120;background:white;padding:12px}.skip:focus{top:10px}.boot{padding:60px}.nowrap{white-space:nowrap}.form-error{color:#b12d36;white-space:pre-wrap}.gap-top{margin-top:20px}.list-plain{padding-left:20px}.list-plain li{margin:8px 0}.pill-row{display:flex;gap:8px;flex-wrap:wrap}.hint-count{font-size:2rem;font-weight:700;color:var(--blue)}.pre{white-space:pre-wrap;overflow-wrap:anywhere}.sticky-actions{background:white;position:sticky;bottom:0;padding-top:14px}
#budget{width:auto}.banner-caption{font-size:.875rem;color:#dce6f8}hr{border:0;border-top:1px solid var(--line);margin-bottom:22px}
@media(max-width:1000px){.shell{grid-template-columns:195px minmax(0,1fr)}.main{padding:24px}.columns{grid-template-columns:1fr}.sidebar{padding:25px 14px}.topbar{padding:16px 24px}.material-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}}
@media(max-width:650px){.shell{display:block}.sidebar{position:static;height:auto;padding:18px}.brand{font-size:1.25rem}.brand-sub,.sidefoot,.sidebar>label{display:none}.sidebar select{margin:10px 0}.sidebar nav{display:flex;overflow-x:auto;gap:5px}.sidebar nav button{white-space:nowrap;padding:8px 11px;font-size:.875rem}.main{padding:22px 16px}.topbar{padding:12px 16px;align-items:flex-start}.topbar .meta{display:none}h1{font-size:1.6rem}.panel{padding:18px}.banner{padding:20px}.banner .big{font-size:1.9rem}.grid2{grid-template-columns:1fr}.task{grid-template-columns:28px minmax(0,1fr);gap:10px}.task>button{grid-column:2;justify-self:start}.task .number{width:27px;height:27px}.modal-body{padding:20px}.modal-head{padding:16px 20px}.filters{grid-template-columns:1fr}.filters input{grid-column:auto}.score-table{font-size:.875rem}}
