:root{--bg:#fff;--bg-sub:#f7f8f9;--fg:#172b4d;--muted:#44546f;--subtle:#626f86;--line:#091e4224;--line-soft:#091e420f;--hover:#091e420f;--hover-strong:#091e4224;--border-input:#8590a2;--accent:#0c66e4;--accent-hover:#05c;--accent-fg:#fff;--accent-bg:#e9f2ff;--err:#ae2e24;--err-bg:#ffecec;--danger:#c9372c;--ok:#216e4e;--ok-bg:#dcfff1;--ok-dot:#22a06b;--warn:#a54800;--warn-bg:#fff7d6;--warn-icon:#e2b203;--purple:#5e4db2;--purple-bg:#f3f0ff;--lv-low-bg:#ffecec;--lv-low:#ae2e24;--lv-mid-bg:#fff7d6;--lv-mid:#a54800;--lv-high-bg:#e9f2ff;--lv-high:#05c;--shadow:0 8px 12px #091e4226, 0 0 1px #091e424f}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;margin:0;font:14px/20px -apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Noto Sans JP,sans-serif}a{color:var(--accent);cursor:pointer;text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}h1{margin:0;font-size:24px;font-weight:600;line-height:28px}h2{margin:0;font-size:16px;font-weight:600;line-height:20px}p{margin:0}.muted{color:var(--muted)}small.muted{font-size:12px}.error{color:var(--err)}.stack{flex-direction:column;gap:24px;display:flex}.stack.sm{gap:16px}.stack.xs{gap:4px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.between{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}button,.btn{font:inherit;background:var(--hover);height:32px;color:var(--muted);cursor:pointer;white-space:nowrap;border:none;border-radius:3px;align-items:center;padding:0 12px;font-weight:500;text-decoration:none;display:inline-flex}button:hover,.btn:hover{background:var(--hover-strong);color:var(--muted);text-decoration:none}button.primary{background:var(--accent);color:var(--accent-fg)}button.primary:hover{background:var(--accent-hover);color:var(--accent-fg)}button.ghost{background:0 0}button.ghost:hover{background:var(--hover)}button.lg{height:40px;padding:0 16px}button.danger,button.danger:hover{background:var(--danger);color:#fff}button:disabled{color:#091e424f;cursor:not-allowed}button.primary:disabled,button.danger:disabled{background:#091e4208}button.ghost:disabled{background:0 0}button:focus-visible,a:focus-visible{outline-offset:2px;outline:2px solid #388bff}input,select,textarea{font:inherit;color:var(--fg);border:1px solid var(--border-input);background:var(--bg);border-radius:3px;height:40px;padding:0 8px}textarea{resize:vertical;height:auto;padding:8px}select{appearance:none;cursor:pointer;background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1.5 1.5 6 6l4.5-4.5' fill='none' stroke='%2344546f' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center / 12px 8px;padding-right:32px}select:disabled{cursor:not-allowed}input.sm,select.sm{height:32px}input:focus,select:focus,textarea:focus{border-color:#388bff;outline:none;box-shadow:inset 0 0 0 1px #388bff}input[type=checkbox],input[type=radio]{height:auto;accent-color:var(--accent)}.field{flex-direction:column;gap:4px;display:flex}.field>label{color:var(--muted);font-size:12px;font-weight:600;line-height:16px}.req{color:var(--err)}.hint{color:var(--subtle);font-size:12px;line-height:16px}.fields{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.tag{background:var(--hover);height:20px;color:var(--muted);white-space:nowrap;border-radius:3px;align-items:center;padding:0 6px;font-size:12px;font-weight:700;display:inline-flex}.tag.blue{background:var(--accent-bg);color:var(--lv-high)}.tag.green{background:var(--ok-bg);color:var(--ok)}.tag.red{background:var(--err-bg);color:var(--err)}.tag.warn{background:var(--warn-bg);color:var(--warn)}.tag.purple{background:var(--purple-bg);color:var(--purple)}.lv{border-radius:3px;justify-content:center;align-items:center;min-width:22px;height:20px;padding:0 4px;font-size:12px;font-weight:700;display:inline-flex}.lv.none{color:var(--border-input);background:0 0}.lv.low{background:var(--lv-low-bg);color:var(--lv-low)}.lv.mid{background:var(--lv-mid-bg);color:var(--lv-mid)}.lv.high{background:var(--lv-high-bg);color:var(--lv-high)}.count{background:var(--hover);min-width:20px;height:16px;color:var(--fg);text-align:center;border-radius:8px;padding:0 6px;font-size:12px;line-height:16px}.panel{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:12px;min-width:0;padding:20px 24px;display:flex}.callout{background:var(--warn-bg);border-radius:3px;gap:12px;padding:16px;display:flex}.callout .icon{background:var(--warn-icon);color:#172b4d;border-radius:4px;flex:none;justify-content:center;align-items:center;width:20px;height:20px;font-size:13px;font-weight:700;display:flex}.callout .body{flex-direction:column;gap:8px;min-width:0;display:flex}.tabs{border-bottom:2px solid var(--line);gap:4px;display:flex;overflow:auto hidden}.tabs button{background:0 0;border-bottom:2px solid #0000;border-radius:0;gap:6px;height:40px;margin-bottom:-2px;padding:0 8px}.tabs button:hover{color:var(--accent);background:0 0}.tabs button.on{color:var(--accent);border-bottom-color:var(--accent)}.tabs.sm button{height:36px}.tabs button:focus-visible{outline-offset:-2px}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--line);background:var(--bg);z-index:5;flex:none;justify-content:space-between;align-items:center;gap:16px;height:56px;padding:0 16px;display:flex;position:sticky;top:0}.topbar .brand{color:var(--fg);font-size:16px;font-weight:600}.shell-body{flex:1;min-height:0;display:flex}.side{border-right:1px solid var(--line);flex-direction:column;flex:none;gap:2px;width:232px;padding:16px 8px;display:flex}.side a{height:40px;color:var(--muted);border-radius:3px;justify-content:space-between;align-items:center;padding:0 12px;font-weight:500;display:flex}.side a:hover{background:var(--hover);text-decoration:none}.side a.on{background:var(--accent-bg);color:var(--accent)}.side a.on .count{background:var(--accent);color:#fff}.main{flex:1;min-width:0;padding:24px 40px 64px}@media (width<=800px){.shell-body{flex-direction:column}.side{border-right:none;border-bottom:1px solid var(--line);flex-direction:row;width:auto;padding:8px}.main{padding:16px}}.center-screen{background:var(--bg-sub);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.card{background:var(--bg);border-radius:8px;flex-direction:column;gap:24px;width:100%;max-width:400px;padding:32px;display:flex;box-shadow:0 1px 1px #091e4240,0 0 1px #091e424f}.eyebrow{color:var(--subtle);font-size:12px;font-weight:600;line-height:16px}.segbar{border-radius:4px;gap:2px;height:8px;display:flex;overflow:hidden}.stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;display:grid}.stat{all:unset;cursor:pointer;border-radius:3px;flex-direction:column;gap:4px;margin:-8px;padding:8px;display:flex}.stat:hover{background:var(--hover)}.stat .k{color:var(--muted);align-items:center;gap:6px;font-size:12px;line-height:16px;display:flex}.stat .k i{border-radius:2px;width:8px;height:8px}.stat .v{font-size:24px;font-weight:600;line-height:28px}.cols{grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:24px;display:grid}.item{border-top:1px solid var(--line-soft);align-items:center;gap:12px;padding:8px 0;display:flex}.item .grow{flex-direction:column;flex:1;min-width:0;display:flex}.tags{flex-wrap:wrap;gap:4px;display:flex}.drop{border:1px dashed var(--border-input);background:var(--bg-sub);text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:12px;padding:32px 24px;display:flex}.drop.on{border-color:var(--accent);background:var(--accent-bg)}.code{border:1px solid var(--line);background:var(--bg-sub);color:var(--fg);white-space:pre;border-radius:3px;margin:0;padding:12px 16px;font:13px/22px ui-monospace,SFMono-Regular,Menlo,Hiragino Sans,Noto Sans JP,monospace;overflow-x:auto}.scroll{overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--muted);border-bottom:2px solid var(--line);white-space:nowrap;padding:8px;font-size:12px;font-weight:600;line-height:16px}td{vertical-align:middle;border-bottom:1px solid var(--line-soft);padding:8px}tbody tr:hover{background:var(--bg-sub)}tr.click{cursor:pointer}td .sub{color:var(--subtle);font-size:12px;line-height:16px;display:block}.mean{color:var(--subtle);font-variant-numeric:tabular-nums;font-size:12px}.empty{text-align:center;flex-direction:column;align-items:center;gap:4px;padding:48px 16px;display:flex}.menu-btn{letter-spacing:1px;background:0 0;justify-content:center;width:32px;padding:0;font-weight:700}.popup-back{z-index:20;position:fixed;inset:0}.popup{z-index:21;background:var(--bg);min-width:180px;box-shadow:var(--shadow);border-radius:3px;flex-direction:column;padding:4px 0;display:flex;position:fixed}.popup button{height:36px;color:var(--fg);background:0 0;border-radius:0;justify-content:flex-start;padding:0 16px}.popup button:hover{background:var(--hover)}.popup button:disabled{color:#091e424f;background:0 0}.popup button.del{color:var(--err)}.popup button.del:hover{background:var(--err-bg)}.popup hr{background:var(--line);border:none;width:100%;height:1px;margin:4px 0}.overlay{z-index:30;background:#091e427d;justify-content:center;align-items:flex-start;padding:64px 16px;display:flex;position:fixed;inset:0;overflow:auto}.modal{background:var(--bg);width:100%;max-width:480px;box-shadow:var(--shadow);border-radius:8px;flex-direction:column;display:flex}.modal.wide{max-width:600px}.modal .hd{flex-direction:column;gap:4px;padding:24px 24px 0;display:flex}.modal h2{font-size:20px;line-height:24px}.modal .bd{flex-direction:column;gap:16px;padding:20px 24px;display:flex}.modal .ft{justify-content:flex-end;gap:8px;padding:16px 24px 24px;display:flex}.modal .bd.p24{padding:24px}.modal .ft.f0{padding:0 24px 24px}.modal .ttl{align-items:center;gap:8px;display:flex}.modal .ttl i{background:var(--danger);color:#fff;text-align:center;border-radius:50%;width:20px;height:20px;font:700 13px/20px sans-serif}.url{border-color:var(--line);background:var(--bg-sub);flex:1;min-width:0;height:32px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.toast{z-index:40;background:var(--bg);box-shadow:var(--shadow);border-radius:3px;align-items:center;gap:12px;padding:12px 16px;font-weight:500;display:flex;position:fixed;bottom:24px;left:24px}.toast i{background:var(--ok-dot);color:#fff;text-align:center;border-radius:50%;width:20px;height:20px;font:700 12px/20px sans-serif}.crumb{color:var(--muted);align-items:center;gap:8px;display:flex}.crumb a{color:var(--muted)}.crumb span:nth-child(2){color:var(--border-input)}.alerts{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px;display:grid}.scorebox{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:12px;min-width:0;padding:16px 24px 20px;display:flex}.grid3{grid-template-columns:180px minmax(0,1fr) 48px;align-items:center;gap:16px;display:grid}.domain{border-top:1px solid var(--line-soft)}.domain>button{all:unset;box-sizing:border-box;cursor:pointer;grid-template-columns:180px minmax(0,1fr) 48px;align-items:center;gap:16px;width:100%;padding:14px 0;display:grid}.domain .name{align-items:center;gap:8px;font-weight:600;display:flex}.domain .arrow{width:16px;color:var(--subtle);font-size:12px;font-weight:400;display:inline-block}.domain.open .arrow{transform:rotate(90deg)}.track{background:var(--hover);border-radius:4px;height:8px;position:relative}.track .fill{background:var(--accent);border-radius:4px;position:absolute;top:0;bottom:0;left:0}.track .cut{background:var(--bg);width:2px;position:absolute;top:-3px;bottom:-3px}.track.thin{border-radius:2px;height:4px}.track.thin .fill{background:var(--border-input);border-radius:2px}.facets{flex-direction:column;gap:10px;padding:0 0 16px;display:flex}.facets .lbl{color:var(--muted);padding-left:24px;font-size:13px}.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.legend{flex-wrap:wrap;gap:24px;font-size:12px;line-height:16px;display:flex}.scale-head{color:var(--subtle);font-size:11px;line-height:16px}.timing{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.timing>div{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:4px;padding:16px 20px;display:flex}.timing .k{color:var(--muted);font-size:12px;line-height:16px}.timing .v{font-variant-numeric:tabular-nums;font-size:24px;font-weight:600;line-height:28px}@media (width<=640px){.grid3,.domain>button{grid-template-columns:110px minmax(0,1fr) 40px;gap:8px}}.exam{flex-direction:column;min-height:100vh;display:flex}.exam .topbar{padding:0 24px;position:static}.steps{grid-template-columns:repeat(4,1fr);width:100%;max-width:768px;margin:0 auto;padding:24px 24px 0;list-style:none;display:grid}.steps li{color:var(--subtle);flex-direction:column;align-items:center;gap:8px;font-size:12px;line-height:16px;display:flex;position:relative}.steps li.on{color:var(--accent);font-weight:600}.steps li.past{color:var(--fg)}.steps .dot{width:16px;height:16px;box-shadow:0 0 0 3px var(--bg);background:#dcdfe4;border-radius:50%;position:relative}.steps .l,.steps .r{background:#dcdfe4;width:50%;height:2px;position:absolute;top:7px}.steps .l{left:0}.steps .r{right:0}.steps li.reached .dot,.steps li.reached .l,.steps li.past .r{background:var(--accent)}.steps li:first-child .l,.steps li:last-child .r{background:0 0}.narrow{flex-direction:column;gap:24px;width:100%;max-width:720px;margin:0 auto;padding:40px 24px 64px;display:flex}.consent{border:1px solid var(--line);border-radius:8px;flex-direction:column;display:flex}.consent>div{grid-template-columns:96px minmax(0,1fr);gap:16px;padding:16px 20px;display:grid}.consent>div+div{border-top:1px solid var(--line-soft)}.consent b{font-weight:600}.consent span{text-wrap:pretty;line-height:22px}.check{cursor:pointer;align-items:center;gap:8px;display:flex}.check input{width:16px;height:16px}.instr{align-items:flex-start;gap:12px;line-height:24px;display:flex}.instr .n{background:var(--accent-bg);width:24px;height:24px;color:var(--lv-high);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.likert-demo{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.likert-demo>div{border:1px solid var(--line);text-align:center;border-radius:3px;flex-direction:column;gap:2px;padding:8px 4px;display:flex}.likert-demo b{font-weight:600}.likert-demo span{color:var(--muted);font-size:11px;line-height:14px}.qwrap{flex:1;grid-template-columns:200px minmax(0,1fr);align-items:start;gap:40px;width:100%;max-width:1120px;margin:0 auto;padding:32px 24px 0;display:grid}.rail{flex-direction:column;gap:16px;display:flex;position:sticky;top:24px}.rail .big{font-size:20px;font-weight:600;line-height:24px}.rail .big span{color:var(--subtle);font-size:14px;font-weight:400}.bar{background:var(--hover);border-radius:3px;height:6px;overflow:hidden}.bar>div{background:var(--accent);height:100%;transition:width .2s}.rail button{height:36px;color:var(--fg);background:0 0;justify-content:space-between;width:100%;padding:0 10px}.rail button:hover{background:var(--hover)}.rail button.on{background:var(--accent-bg);color:var(--accent)}.rail button:disabled{color:var(--border-input);background:0 0}.rail button em{color:var(--subtle);font-variant-numeric:tabular-nums;font-size:12px;font-style:normal}.rail button em.done{color:var(--ok)}.question{border:none;border-bottom:1px solid var(--line-soft);flex-direction:column;gap:12px;min-width:0;margin:0;padding:20px 0;display:flex}.question .t{align-items:baseline;gap:12px;font-size:16px;font-weight:500;line-height:24px;display:flex}.question .t b{width:28px;color:var(--subtle);font-variant-numeric:tabular-nums;flex:none;font-weight:600}.likert{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding-left:40px;display:grid}.likert label{border:1px solid var(--line);cursor:pointer;text-align:center;background:var(--bg);border-radius:3px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:52px;padding:6px 4px;display:flex;position:relative}.likert label:hover{border-color:var(--accent)}.likert label.on{background:var(--accent-bg);border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.likert label:focus-within{outline-offset:2px;outline:2px solid #388bff}.likert input{opacity:0;pointer-events:none;position:absolute}.likert b{font-weight:600}.likert span{font-size:11px;line-height:14px}.qfoot{background:var(--bg);border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;padding:12px 0 16px;font-size:12px;display:flex;position:sticky;bottom:0}.qfoot .dot{background:var(--ok-dot);border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.qfoot .dot.bad{background:var(--danger)}.done{text-align:center;flex-direction:column;align-items:center;gap:16px;max-width:560px;margin:0 auto;padding:80px 24px;display:flex}.done .ok{background:var(--ok-bg);width:48px;height:48px;color:var(--ok);border-radius:50%;justify-content:center;align-items:center;font-size:22px;font-weight:700;display:flex}@media (width<=800px){.qwrap{grid-template-columns:1fr;gap:16px}.rail{position:static}.rail .pages{display:none}.likert{padding-left:0}.likert span{font-size:10px}}th button.sort{all:unset;cursor:pointer;font:inherit;color:inherit;align-items:center;gap:4px;display:inline-flex}th button.sort:hover,th button.sort:focus-visible{color:var(--fg)}th button.sort .arrow{opacity:.35;font-size:9px}th button.sort .arrow.on{opacity:1;color:var(--accent)}
