:root{--brand:#0c66e4;--brand-hover:#05c;--brand-subtle:#e9f2ff;--text:#172b4d;--text-subtle:#44546f;--text-subtlest:#626f86;--surface:#fff;--surface-sunken:#f7f8f9;--surface-hover:#f1f2f4;--surface-pressed:#dcdfe4;--border:#091e4224;--border-bold:#8590a2;--line:#dcdfe4;--success-bg:#dcfff1;--success-text:#216e4e;--info-bg:#e9f2ff;--info-text:#05c;--warn-bg:#fff7d6;--warn-text:#a54800;--danger:#c9372c;--danger-bg:#ffeceb;--danger-text:#ae2e24;--neutral-bg:#dcdfe4;--neutral-text:#44546f;--r-control:3px;--r-card:8px;--raised:0 1px 1px #091e4240, 0 0 1px #091e424f;--mono:ui-monospace, "Cascadia Mono", "Segoe UI Mono", Consolas, monospace;--font-head:"Pretendard Variable", "Pretendard", "맑은 고딕", system-ui, sans-serif;--rail:74px;--header:48px}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-synthesis:none}body{word-break:keep-all;overflow-wrap:break-word}.loading{align-items:center;gap:8px;display:inline-flex}.loading:before{content:"";border:2px solid var(--line);border-top-color:var(--brand);border-radius:50%;flex:none;width:14px;height:14px;animation:.8s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.loading:before{animation-duration:2.4s}}*{box-sizing:border-box}[hidden]{display:none!important}body{color:var(--text);background:var(--surface-sunken);margin:0;font:15.5px/1.65 Pretendard Variable,Pretendard,맑은 고딕,system-ui,sans-serif;overflow-x:hidden}button,input,textarea,select{font:inherit;color:inherit}header{height:var(--header);border-bottom:1px solid var(--border);background:var(--surface);z-index:5;align-items:center;gap:12px;width:100%;padding:0 16px;display:flex;position:sticky;top:0}header .brand{white-space:nowrap;color:var(--text);margin-left:calc((var(--rail) - 34px) / 2 - 16px);align-items:center;gap:10px;text-decoration:none;display:flex}header .brand .mark{width:34px;height:34px;display:block}header .brand .bt{font-family:var(--font-head);letter-spacing:-.02em;font-size:21px;font-weight:800;line-height:1}header .brand:hover .bt{color:var(--brand-hover)}header .sp{flex:1}@media (width<=700px){header .brand{margin-left:0}header .brand .mark{width:28px;height:28px}header .brand .bt{font-size:18.5px}}.shell{grid-template-columns:var(--rail) 1fr;min-height:calc(100vh - var(--header));min-height:calc(100dvh - var(--header));width:100%;display:grid}#rail{border-right:1px solid var(--border);background:var(--surface);top:var(--header);height:calc(100vh - var(--header));height:calc(100dvh - var(--header));flex-direction:column;gap:2px;padding:8px 6px;display:flex;position:sticky}#rail button{border-radius:var(--r-control);width:100%;color:var(--text-subtle);cursor:pointer;font:inherit;background:0 0;border:none;flex-direction:column;align-items:center;gap:3px;padding:7px 2px;display:flex}#rail button:hover{background:var(--surface-hover)}#rail button.on{background:var(--brand-subtle);color:var(--brand-hover)}#rail svg{stroke:currentColor;fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}#rail .lb{letter-spacing:-.02em;word-break:keep-all;text-align:center;font-size:11.5px;line-height:1.3}#rail .bottom-first{margin-top:auto}main{width:100%;max-width:var(--main-max,960px);min-width:0;margin:28px auto 60px;padding:0 28px}.work{min-width:0;height:calc(100vh - var(--header));height:calc(100dvh - var(--header));display:flex}@media (width<=700px){.shell{grid-template-rows:auto 1fr;grid-template-columns:1fr;align-content:start}#rail{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;height:auto;position:static;overflow-x:auto}#rail button{width:auto;min-width:64px}#rail .bottom-first{margin-top:0;margin-left:auto}main{max-width:100%;margin-top:18px;padding:0 16px}.work{height:auto;min-height:calc(100dvh - var(--header) - 62px)}}.page-head{flex-wrap:wrap;align-items:flex-end;gap:10px 14px;margin:0 0 18px;display:flex}.page-head h1{font-size:22px;font-weight:700;font-family:var(--font-head);letter-spacing:-.01em;flex:1;margin:0;line-height:1.3}.page-head .ph-sub{color:var(--text-subtle);flex-basis:100%;margin:3px 0 0;font-size:14px}.btn{border-radius:var(--r-control);background:var(--surface-hover);color:var(--text);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:6px;padding:7px 12px;font-size:14.5px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-pressed)}.btn.pri{background:var(--brand);color:#fff}.btn.pri:hover{background:var(--brand-hover)}.btn.sub{color:var(--text-subtle);background:0 0}.btn.sub:hover{background:var(--surface-hover)}.btn.sm{padding:4px 9px;font-size:13px}.btn:disabled{opacity:.5;cursor:default}.btn svg{stroke:currentColor;fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--raised);padding:14px 16px}.empty{color:var(--text-subtle);padding:8px 2px;font-size:14px}.muted{color:var(--text-subtle);font-size:13.5px}.chip{border-radius:var(--r-control);background:var(--neutral-bg);color:var(--neutral-text);white-space:nowrap;padding:2px 6px;font-size:12px;font-weight:700}.chip.info{background:var(--info-bg);color:var(--info-text)}.chip.ok{background:var(--success-bg);color:var(--success-text)}.chip.warn{background:var(--warn-bg);color:var(--warn-text)}.flag{border-radius:var(--r-card);gap:8px;padding:10px 12px;font-size:13.5px;line-height:1.55;display:flex}.flag.warn{background:var(--warn-bg);color:var(--warn-text)}.flag.err{background:var(--danger-bg);color:var(--danger-text)}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:12px;display:flex}.tabs button{cursor:pointer;color:var(--text-subtle);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 12px;font-weight:500}.tabs button.on{color:var(--brand-hover);border-bottom-color:var(--brand)}.composer{background:var(--surface);border:1px solid var(--border-bold);border-radius:var(--r-card);box-shadow:var(--raised);padding:10px 12px 8px}.composer:focus-within{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.composer textarea{resize:none;background:0 0;border:none;outline:none;width:100%;min-height:54px;max-height:220px;font-size:15.5px;line-height:1.6}.composer .row{align-items:center;gap:8px;margin-top:4px;display:flex}.composer .row .left-note{color:var(--text-subtle);font-size:13px}.composer .row .ml{margin-left:auto}.home{grid-template-columns:minmax(0,1fr);justify-items:center;display:grid}.home .inner{width:min(760px,100%)}.home h1{text-align:center;font:700 26px/1.3 var(--font-head);letter-spacing:-.01em;margin:12px 0 4px}.home .lead{text-align:center;color:var(--text-subtle);margin:0 0 18px;font-size:14.5px}.home .cols{grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;display:grid}.home .cols .hd{align-items:center;margin-bottom:6px;display:flex}.home .cols .hd b{font-size:15px}.home .cols .hd .btn{margin-left:auto}@media (width<=700px){.home .cols{grid-template-columns:1fr}}.list{flex-direction:column;display:flex}.list a,.list button{border-radius:var(--r-control);color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;gap:10px;padding:7px 8px;font-size:14.5px;text-decoration:none;display:flex}.list a:hover,.list button:hover{background:var(--surface-hover)}.list small{color:var(--text-subtlest);white-space:nowrap;font-size:12.5px}.tools{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.tools.big{grid-template-columns:repeat(3,1fr);gap:10px}@media (width<=700px){.tools.big{grid-template-columns:1fr 1fr}}.tool{border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);cursor:pointer;text-align:left;color:inherit;align-items:center;gap:10px;padding:9px 10px;text-decoration:none;display:flex}.tool:hover{background:var(--surface-hover)}.tool b{font-size:14.5px;display:block}.tool small{color:var(--text-subtle);font-size:12.5px;display:block}.tools.big .tool{padding:14px}.ti{border-radius:var(--r-control);background:var(--c);color:#fff;flex:none;place-items:center;width:30px;height:30px;font-size:14px;font-weight:700;display:grid}.chat-col{flex-direction:column;flex:1;align-items:center;min-width:0;padding:12px 18px 14px;display:flex}.chat-col .bar{gap:6px;width:100%;margin-bottom:8px;display:flex}.chat-col .bar .ml{margin-left:auto}.chat-col .stream{flex-direction:column;flex:1;gap:10px;width:min(760px,100%);padding:6px 2px 12px;display:flex;overflow-y:auto}.chat-col .composer{width:min(760px,100%)}.work.with-canvas .chat-col{flex:0 0 42%}.work.with-canvas .chat-col .stream,.work.with-canvas .chat-col .composer{width:100%}.msg.q{background:var(--brand-subtle);border-radius:var(--r-card) var(--r-card) 2px var(--r-card);white-space:pre-wrap;align-self:flex-end;max-width:80%;padding:8px 12px}.msg.a{white-space:pre-wrap;align-self:stretch;line-height:1.7}.msg.a.err{white-space:normal}.msg.step{color:var(--text-subtle);align-self:flex-start;padding-left:14px;font-size:13px;position:relative}.msg.step:before{content:"";background:var(--border-bold);border-radius:50%;width:6px;height:6px;position:absolute;top:.6em;left:2px}.chat-empty{text-align:center;color:var(--text-subtle);margin:auto 0}.chat-empty h2{font:700 22px/1.3 var(--font-head);color:var(--text);margin:0 0 6px}.canvas{border-left:1px solid var(--border);background:var(--surface);flex-direction:column;flex:1;min-width:0;display:flex}.canvas[hidden]{display:none}.canvas .cvh{border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:6px 10px;display:flex}.canvas .cvh .tabs{border:none;margin:0}.canvas .cvh .ml{margin-left:auto}.canvas .cvb{flex:1;padding:16px;overflow:auto}.work.canvas-wide .chat-col{display:none}@media (width<=700px){.work.with-canvas .chat-col{display:none}.canvas{border-left:none}}.placeholder{border:1px dashed var(--border-bold);border-radius:var(--r-card);color:var(--text-subtle);background:var(--surface-sunken);padding:18px 16px;font-size:14px}.form-col{border-right:1px solid var(--border);flex-direction:column;flex:0 0 42%;min-width:0;padding:12px 16px 14px;display:flex}.form-col .bar{align-items:center;gap:8px;margin-bottom:8px;display:flex}.form-col .stream{flex-direction:column;flex:1;gap:10px;padding:4px 2px 12px;display:flex;overflow-y:auto}.paper{box-sizing:border-box;background:#fff;width:min(680px,100%);min-height:760px;margin:0 auto;padding:48px 52px;font-size:14px;box-shadow:0 1px 4px #091e4233}.paper h3{text-align:center;font:700 20px/1.4 var(--font-head);margin:0 0 24px}.paper .slot{grid-template-columns:120px 1fr;align-items:start;gap:8px;margin-bottom:10px;display:grid}.paper .slot b{color:var(--text-subtle);padding-top:6px;font-size:13.5px}.paper .slot span{border-radius:var(--r-control);background:var(--surface-hover);min-height:32px;color:var(--text-subtlest);align-items:center;padding:0 8px;font-size:12.5px;display:flex}.textbox{width:min(560px,100%);margin:0 auto}.textbox .box{border:1px solid var(--line);border-radius:var(--r-card);min-height:180px;color:var(--text-subtlest);background:#fff;padding:12px}@media (width<=700px){.work.form-open{flex-direction:column}.form-col{border-right:none;flex:none}.paper{min-height:0;padding:24px 20px}}.gate{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.gate .card{width:min(400px,100%);padding:22px 22px 18px}.gate .title{align-items:center;gap:10px;margin-bottom:6px;display:flex}.gate .title img{width:32px;height:32px}.gate .title b{font:800 20px/1.2 var(--font-head);letter-spacing:-.02em}.gate .sub{color:var(--text-subtle);margin:0 0 16px;font-size:14px}.gate label{color:var(--text-subtle);margin-bottom:4px;font-size:13px;font-weight:700;display:block}.gate input.code{border:2px solid var(--border-bold);border-radius:var(--r-control);width:100%;font:700 20px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;padding:9px 12px}.gate input.code:focus{border-color:var(--brand);outline:none}.gate .hint{color:var(--text-subtle);margin:6px 0 14px;font-size:13px;line-height:1.55}.gate .full{justify-content:center;width:100%;padding:10px;font-size:15.5px}.gate .foot{border-top:1px solid var(--line);text-align:center;margin-top:16px;padding-top:10px}.gate .err{margin:0 0 12px}.bigcode{font:700 28px/1 var(--mono);letter-spacing:.2em;text-align:center;background:var(--surface-sunken);border:1px dashed var(--border-bold);border-radius:var(--r-control);padding:16px}.gate .check{color:var(--text);align-items:center;gap:8px;margin:14px 0;font-size:14px;font-weight:500;display:flex}.acc-cards{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px;display:grid}@media (width<=860px){.acc-cards{grid-template-columns:1fr}}.acc-cards .k{color:var(--text-subtle);font-size:13px}.acc-cards .code{font:700 20px/1.3 var(--mono);letter-spacing:.16em;margin:4px 0}.usage-grid{grid-template-columns:1fr 1fr;gap:4px 12px;margin-top:6px;font-size:13.5px;display:grid}.acc-foot{gap:8px;margin-top:14px;display:flex}table.t{border-collapse:collapse;width:100%;font-size:14px}table.t th,table.t td{text-align:left;border-bottom:1px solid var(--line);padding:7px 8px}table.t th{color:var(--text-subtle);font-size:12.5px;font-weight:700}.admin-shell{min-height:calc(100vh - var(--header));grid-template-columns:200px 1fr;display:grid}.admin-shell nav{background:var(--surface);border-right:1px solid var(--border);padding:10px 6px}.admin-shell nav button{text-align:left;border-radius:var(--r-control);cursor:pointer;width:100%;color:var(--text-subtle);background:0 0;border:none;padding:8px 10px;display:block}.admin-shell nav button.on{background:var(--brand-subtle);color:var(--brand-hover)}.home .upcoming{margin-top:14px}.home .upcoming .hd{align-items:center;gap:8px;margin-bottom:4px;display:flex}.home .upcoming .hd b{font-size:15px}.home .upcoming .hd .ml{margin-left:auto}.tasks{flex-direction:column;display:flex}.task{border-radius:var(--r-control);align-items:center;gap:10px;padding:6px 8px;font-size:14.5px;display:flex}.task:hover{background:var(--surface-hover)}.task input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand);flex:none}.task .dd{text-align:center;border-radius:var(--r-control);background:var(--neutral-bg);min-width:58px;color:var(--neutral-text);flex:none;padding:2px 6px;font-size:12px;font-weight:700}.task .dd.late{background:var(--danger-bg);color:var(--danger-text)}.task .dd.today{background:var(--warn-bg);color:var(--warn-text)}.task .dd.soon{background:var(--info-bg);color:var(--info-text)}.task .dd.done{background:var(--success-bg);color:var(--success-text)}.task .tt{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.task .tt small{color:var(--text-subtlest);white-space:normal;font-size:12.5px;display:block}.task .when{color:var(--text-subtle);white-space:nowrap;flex:none;font-size:12.5px}.task.is-done .tt{color:var(--text-subtlest);text-decoration:line-through}.due-hint{border:1px solid var(--border);border-left:3px solid var(--brand);border-radius:var(--r-card);background:var(--surface);margin-top:10px;padding:8px 10px}.due-hint .due-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;font-size:14px;display:flex}.due-hint .due-head svg{width:16px;height:16px;stroke:var(--brand);fill:none;stroke-width:1.6px}.due-hint .due-head .ml{margin-left:auto}.due-row{grid-template-columns:1fr 140px 104px auto;align-items:center;gap:6px;margin-top:4px;display:grid}.due-row input{border:1px solid var(--border-bold);border-radius:var(--r-control);background:var(--surface);min-width:0;padding:4px 7px;font-size:13.5px}.due-row input:focus{border-color:var(--brand);outline:none}.due-hint.in-chat{align-self:flex-end;width:min(560px,92%);margin-top:-4px}@media (width<=700px){.due-row{grid-template-columns:1fr 1fr}.due-row .ttl{grid-column:1/-1}}.task-add textarea{border:1px solid var(--border-bold);border-radius:var(--r-control);resize:vertical;background:var(--surface);width:100%;padding:8px 10px;font-size:14px;line-height:1.55}.task-add .row{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 4px;display:flex}.task-add .row .ml{margin-left:auto}#taskOpen,.done-list{margin-top:10px}.done-list summary{cursor:pointer;color:var(--text-subtle);padding:4px 2px;font-size:13.5px}.tool-group{margin-bottom:16px}.tool-group h2{font:700 14px/1.4 var(--font-head);color:var(--text-subtle);margin:0 0 8px}.tool b .chip{vertical-align:1px;padding:1px 5px;font-size:11px}.cite{vertical-align:2px;background:var(--info-bg);min-width:18px;height:18px;color:var(--info-text);cursor:pointer;border:none;border-radius:9px;place-items:center;margin:0 1px;padding:0 4px;font-size:11px;font-weight:700;line-height:1;display:inline-grid}.cite:hover{background:var(--brand);color:#fff}.seen{white-space:normal;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.seen .chip{cursor:pointer;border:none}.src{border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);margin-bottom:10px;padding:10px 12px;transition:box-shadow .3s}.src.cited{border-color:var(--brand)}.src.flash{box-shadow:0 0 0 3px var(--brand-subtle)}.src .sh{align-items:center;gap:8px;display:flex}.src .sn{background:var(--info-bg);width:22px;height:22px;color:var(--info-text);border-radius:11px;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.src.cited .sn{background:var(--brand);color:#fff}.src .sp{color:var(--text-subtle);margin:4px 0 0 30px;font-size:13px}.src .st{white-space:pre-wrap;max-height:260px;margin:8px 0 6px;font-size:13.5px;line-height:1.65;overflow:auto}.paper.letter{padding:36px clamp(16px,5%,48px);font-size:14px;line-height:1.75}.paper.letter.empty{min-height:420px}.paper.letter .ed{border-radius:2px;outline:none;min-width:24px}.paper.letter .ed:hover{background:#f4f7ff}.paper.letter .ed:focus{box-shadow:0 0 0 1px var(--brand);background:#eaf1ff}.paper.letter .ed:empty:before{content:"○○";color:#b0b6bf}.paper.letter mark{color:inherit;background:#fff2b3;padding:0 1px}.lhead{border-collapse:collapse;width:100%;margin-bottom:22px;font-size:13px}.lhead td,.lhead th{border:1px solid #666;padding:5px 8px}.lhead th{background:#eef0f2;width:13%;font-weight:700}.lhead .banner{text-align:center;width:40%;font:800 26px/1.2 var(--font-head);letter-spacing:.08em}.paper.letter h3{text-align:center;font:700 19px/1.4 var(--font-head);margin:6px 0 18px}.paper.letter p{text-align:justify;margin:0 0 10px}.paper.letter .arae{text-align:center;letter-spacing:.3em;margin:14px 0 10px;font-weight:700}.paper.letter .li{align-items:baseline;gap:4px;margin:3px 0;display:flex}.paper.letter .li .no{flex:none;width:22px;font-weight:700}.paper.letter .li .lab{flex:none;font-weight:700}.paper.letter .li .val{flex:1}.paper.letter .li.sub{padding-left:22px}.paper.letter .x{color:#a0a6ae;cursor:pointer;visibility:hidden;background:0 0;border:none;padding:0 4px;font-size:15px;line-height:1}.paper.letter .li:hover .x,.paper.letter h4:hover .x{visibility:visible}.paper.letter .x:hover{color:var(--danger)}.paper.letter .adds{opacity:.55;gap:4px;margin:4px 0 12px;display:flex}.paper.letter .adds:hover{opacity:1}.paper.letter .date{text-align:center;margin:18px 0 4px}.paper.letter .headname{text-align:center;font:800 18px/1.4 var(--font-head);letter-spacing:.1em;margin-bottom:22px}.paper.letter .cut{text-align:center;color:#888;white-space:nowrap;margin:18px 0 8px;font-size:12px;overflow:hidden}.paper.letter h4{text-align:center;font:700 17px/1.4 var(--font-head);letter-spacing:.4em;margin:6px 0 10px}.paper.letter table.reply{border-collapse:collapse;width:100%;font-size:13.5px}.paper.letter table.reply th,.paper.letter table.reply td{border:1px solid #666;padding:9px 10px}.paper.letter table.reply th{background:#eef0f2;width:28%}.paper.letter table.reply .sign{text-align:right;color:#555}.paper.letter .rnote{margin-top:8px}.paper.letter .rto{text-align:right;font-weight:700}@media (width<=700px){.paper.letter{padding:22px 16px}.lhead .banner{font-size:18px}}.paper.letter p{text-align:left}.paper.letter .ed.num:empty:before{content:"번호(선택)"}
