:root{--ink: #1f2937;--muted: #64748b;--line: #e2e8f0;--bg: #f8fafc;--card: #fff;--primary: #4f46e5;--primary-weak: #eef2ff;--danger: #b91c1c;--warn: #b45309;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}a{color:var(--primary)}h1{font-size:1.5rem;margin:.4em 0}h2{font-size:1.1rem;margin:1.6em 0 .6em}button{font:inherit;border:0;border-radius:10px;padding:.6em 1.1em;min-height:44px;background:var(--primary);color:#fff;font-weight:600;cursor:pointer}button:disabled{opacity:.45;cursor:default}button.secondary{background:#e2e8f0;color:var(--ink)}button.small{min-height:34px;padding:.3em .8em;font-size:.85rem}button.link{background:none;color:var(--primary);padding:0;min-height:0;font-weight:400}button.danger,button.link.danger{color:#fff;background:var(--danger)}button.link.danger{background:none;color:var(--danger)}button.ghost{background:transparent;color:var(--primary);border:2px solid var(--primary)}input,select,textarea{font:inherit;padding:.55em .7em;border:1px solid #cbd5e1;border-radius:8px;background:#fff;min-height:44px}textarea{width:100%}.page{max-width:1040px;margin:0 auto;padding:16px 20px 60px}.page.narrow{max-width:560px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;margin:12px 0}.field{display:flex;flex-direction:column;gap:4px;margin:10px 0;font-size:.9rem;color:#334155;border:0;padding:0}fieldset.field{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.inline{display:inline-flex;align-items:center;gap:6px;margin-right:14px;min-height:40px}.inline.block{display:flex}.inline input[type=checkbox],.inline input[type=radio]{min-height:0;width:20px;height:20px}.row{display:flex;gap:10px;align-items:center;margin:10px 0}.row.between{justify-content:space-between;flex-wrap:wrap}.row.center{justify-content:center}.row.wrap{flex-wrap:wrap;align-items:flex-end}.muted{color:var(--muted)}.hint{color:var(--muted);font-size:.85rem}.center{text-align:center}.error{color:var(--danger);background:#fef2f2;border-radius:8px;padding:10px 12px}.notice{background:var(--primary-weak);border-radius:8px;padding:10px 12px}.warn{color:var(--warn)}.tag{display:inline-block;margin-left:6px;font-size:.72rem;background:var(--primary-weak);color:var(--primary);padding:2px 6px;border-radius:6px}.back{display:inline-block;margin:8px 0;text-decoration:none}.mono{font-family:ui-monospace,monospace}.gnb{position:sticky;top:0;z-index:5;height:64px;display:flex;align-items:center;gap:16px;padding:0 20px;background:#fff;border-bottom:1px solid var(--line)}.gnb .logo{font-weight:800;font-size:1.3rem;color:var(--primary);text-decoration:none;letter-spacing:.04em}.gnb .org{color:var(--muted)}.gnb nav{margin-left:auto;display:flex;gap:16px;align-items:center}.login{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.login .brand{background:linear-gradient(160deg,#4f46e5,#312e81);color:#e0e7ff;padding:10vh 8vw}.login .brand h1{font-size:3rem;color:#fff;margin:0;letter-spacing:.05em}.login .brand .hint,.login .brand .muted{color:#c7d2fe}.login .card{align-self:center;justify-self:center;width:min(420px,92vw)}.login .card button{width:100%;margin-top:8px}@media (max-width: 760px){.login{grid-template-columns:1fr}.login .brand{padding:30px 24px}}.counters{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:12px 0}.counters>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column}.counters b{font-size:1.8rem}.counters span{color:var(--muted);font-size:.85rem}.table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--line)}.table th,.table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);font-size:.92rem}.table th{background:#f1f5f9;font-weight:600;color:#334155}.table.small th,.table.small td{padding:6px 8px;font-size:.8rem}.table.clickable tbody tr{cursor:pointer}.table.clickable tbody tr:hover{background:#f8fafc}.table tfoot td{font-weight:600}.table .actions{display:flex;gap:6px;flex-wrap:wrap}.tabs{display:flex;gap:6px;margin:12px 0}.tabs button{background:#e2e8f0;color:var(--ink)}.tabs button.on{background:var(--primary);color:#fff}.chart{width:100%;max-width:680px;height:auto;display:block;margin:8px 0}.list{list-style:none;padding:0}.list li{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.danger-zone{border-color:#fecaca}.consent{background:#fffbeb}.check ol{padding-left:20px}.check li{margin:14px 0}.touchpad{position:relative;height:220px;background:#fff;border:1px dashed #cbd5e1;border-radius:12px;margin-top:8px;touch-action:none}.touchpad .dot{position:absolute;width:64px;height:64px;border-radius:50%;transform:translate(-50%,-50%);background:#e0e7ff;border:3px solid var(--primary);padding:0}.touchpad .dot.on{background:var(--primary)}.run{position:fixed;inset:0;z-index:50;background:var(--bg);touch-action:none;user-select:none;-webkit-user-select:none}.run .stage{position:absolute;inset:0;width:100%;height:100%;display:block}.pause-btn{position:absolute;top:8px;right:8px;width:44px;height:44px;padding:0;border-radius:50%;background:#94a3b840;color:#64748b;font-size:1rem;z-index:2}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:#f8fafcf7;padding:24px;text-align:center;z-index:1}.overlay.bottom{inset:auto 0 0;background:#fffffff5;padding:20px;gap:14px;box-shadow:0 -4px 20px #0000000f}.overlay .prompt{font-size:clamp(1.4rem,4vw,2.4rem);font-weight:700;max-width:900px;line-height:1.4}button.child{font-size:1.5rem;min-height:72px;min-width:200px;border-radius:20px}.therapist-hint{color:#94a3b8}.progress-dots{display:flex;gap:10px}.progress-dots span{width:18px;height:18px;border-radius:50%;background:#e2e8f0}.progress-dots span.done{background:#a5b4fc}.progress-dots span.now{background:var(--primary)}.child-done{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:#eef2ff;z-index:50}.child-done .big{font-size:3rem;font-weight:800;color:var(--primary)}.report .meta{width:100%;border-collapse:collapse;margin:10px 0}.report .meta th,.report .meta td{border:1px solid var(--line);padding:6px 10px;text-align:left;font-size:.9rem}.report .meta th{background:#f1f5f9;width:14%}.sentences li{margin:4px 0}.disclaimer{margin-top:24px;padding:10px 12px;border-top:2px solid var(--line);color:#475569;font-size:.85rem}.parent{background:#f8fafc;border-radius:10px;padding:4px 14px}.print-only{display:none}@media print{.no-print,.gnb,textarea.note{display:none!important}.print-only{display:block}.watermark{position:fixed;bottom:6mm;right:8mm;font-size:9pt;color:#94a3b8}.note-print{white-space:pre-wrap;border:1px solid #cbd5e1;border-radius:6px;padding:8px;min-height:30mm}.page{max-width:none;padding:0}body{background:#fff}h2{break-after:avoid}.table,.chart{break-inside:avoid}@page{size:A4;margin:14mm}}.status{display:inline-block;font-size:.78rem;font-weight:700;padding:3px 8px;border-radius:999px;vertical-align:middle}.status-open{background:#e0e7ff;color:#3730a3}.status-review{background:#fef3c7;color:#92400e}.status-resolved{background:#dcfce7;color:#166534}.board-post .body{white-space:pre-wrap;line-height:1.6}.gallery{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}.gallery-item{display:flex;flex-direction:column;gap:4px}.board-img{max-width:100%;max-height:360px;border-radius:10px;border:1px solid var(--line);display:block}.picker{border:1px dashed #cbd5e1;border-radius:10px;padding:10px;margin:10px 0}.thumbs{display:flex;flex-wrap:wrap;gap:8px}.thumb{position:relative;margin:0 0 8px;width:120px;height:90px;border-radius:8px;overflow:hidden;background:#f1f5f9}.thumb img{width:100%;height:100%;object-fit:cover}.thumb .x{position:absolute;top:2px;right:2px;min-height:0;width:26px;height:26px;padding:0;border-radius:50%;background:#0f172ab3}.file-btn{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:10px;background:#e2e8f0;cursor:pointer;font-weight:600}.comments{list-style:none;padding:0}.comments li{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:8px 0}.comments li.status-log{background:transparent;border-style:dashed;color:var(--muted);font-size:.88rem}.comments .meta{font-size:.85rem;color:var(--muted);display:flex;gap:8px;align-items:center}.comments .text{white-space:pre-wrap;margin-top:4px}.status-actions{flex-wrap:wrap}code.key{display:block;word-break:break-all;background:#fff;padding:8px;border-radius:6px;margin:6px 0}.version-badge{font-size:.75rem;color:var(--muted);background:#f1f5f9;padding:2px 8px;border-radius:6px}.version-meta th{width:14%}.history tr.expandable{cursor:pointer}.commit-body{white-space:pre-wrap;font-size:.78rem;color:#475569;margin:6px 0 0;font-family:inherit}
