:root{--green:#1c5946;--green2:#2a7655;--ink:#26342d;--muted:#829188;--line:#e5ebe6;--bg:#f5f7f5;--soft:#eaf3ed;--white:#fff;--shadow:0 8px 30px rgba(29,65,45,.035)}
*{box-sizing:border-box}html{font-family:Pretendard,"Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;background:var(--bg);color:var(--ink)}body{margin:0;min-width:320px}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icons{position:absolute;width:0;height:0;overflow:hidden}.app-shell{min-height:100vh;display:grid;grid-template-columns:76px minmax(0,1fr)}.rail{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;padding:19px 0 16px;gap:24px}.brand-mark{width:40px;height:40px;border-radius:12px;background:var(--green);color:#fff;display:grid;place-items:center;font:700 28px/1 Georgia,serif;padding-bottom:5px;flex:none}.rail-line{height:1px;width:32px;background:var(--line)}.rail nav,.rail-bottom{display:flex;flex-direction:column;align-items:center;gap:8px}.rail nav{width:100%}.rail-bottom{margin-top:auto}.nav-button{width:44px;height:44px;display:grid;place-items:center;background:transparent;border:0;border-radius:11px;color:#87988d;position:relative}.nav-button:hover,.nav-button:focus-visible{background:#f0f5f0;color:var(--green)}.nav-button.active{background:var(--soft);color:var(--green)}.nav-button.active:before{content:"";width:3px;height:22px;position:absolute;left:-16px;top:11px;background:var(--green2);border-radius:0 4px 4px 0}.avatar{height:34px;width:34px;border-radius:50%;background:#dfece3;color:var(--green);display:grid;place-items:center;font-size:11px;font-weight:800}.workspace{min-width:0}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);padding:0 34px;display:flex;align-items:center;gap:18px}.wordmark{font-size:14px;font-weight:850;color:#2b5340;letter-spacing:-.4px}.wordmark span{font-size:12px;font-weight:450;color:#899b8e;margin-left:7px}.top-spacer{flex:1}.top-date,.user-name{font-size:11px;color:#809186}.user-name{font-weight:800;color:#415d48}.plain-button{border:0;background:transparent;color:#7f9185;display:grid;place-items:center;padding:5px}.plain-button:hover{color:var(--green)}.main{max-width:1540px;margin:auto;padding:32px 36px 60px}.page[hidden],.overlay[hidden],[hidden]{display:none!important}.page-head{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:23px}.page-head h1{margin:0 0 7px;font-size:27px;letter-spacing:-1px;line-height:1.15}.page-head p{margin:0;color:var(--muted);font-size:12px}.button{min-height:37px;border-radius:8px;padding:8px 15px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:800;border:1px solid #dae4dc;background:#fff;color:#43664b;white-space:nowrap}.button svg{width:15px;height:15px}.button.primary{background:var(--green);border-color:var(--green);color:#fff}.button.primary:hover{background:#174735}.button.secondary:hover{background:#f4f8f4}.text-button{border:0;background:transparent;color:#587e62;font-size:11px;font-weight:800;padding:4px}.text-button:hover{text-decoration:underline}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:16px}.kpi{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:20px;min-height:108px;position:relative}.kpi:before{content:"";position:absolute;left:0;top:21px;height:33px;width:3px;background:#8ab99b;border-radius:3px}.kpi:nth-child(2):before{background:#d2af71}.kpi:nth-child(3):before{background:#d29676}.kpi:nth-child(4):before{background:#91a6c1}.kpi span{display:block;color:#778a7e;font-size:11px;font-weight:700;margin-bottom:12px}.kpi strong{font-size:29px;line-height:1;letter-spacing:-1px}.kpi small{font-size:11px;font-weight:600;color:#90a096;margin-left:4px}.home-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);gap:16px}.panel{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:13px;padding:21px 23px;margin-bottom:16px;min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:17px}.panel h2,.panel-head h2{font-size:15px;margin:0;letter-spacing:-.3px}.panel h3{font-size:13px;margin:0 0 14px}.subtle,.helper{font-size:11px;color:#91a197}.helper{line-height:1.7;margin:8px 0 15px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:550px}.data-table th{text-align:left;color:#a1ada3;font-size:10px;font-weight:750;border-bottom:1px solid #edf1ed;padding:0 10px 11px}.data-table td{border-bottom:1px solid #f0f2ef;padding:13px 10px;font-size:11px;color:#6b7c70}.data-table tr:last-child td{border:0}.data-table td:first-child{font-weight:800;color:#304b39}.data-table button{border:0;background:transparent;font-size:11px;font-weight:800;color:var(--green);padding:0}.tag{display:inline-flex;padding:5px 8px;border-radius:6px;background:#eaf3ec;color:#4b8060;font-size:10px;font-weight:800;white-space:nowrap}.tag.gold{background:#fff2e1;color:#a77c43}.tag.blue{background:#eef2fa;color:#6a80aa}.stage-bars{display:grid;gap:13px}.stage-row{display:grid;grid-template-columns:78px 1fr 22px;align-items:center;gap:10px;font-size:11px;color:#798b7c}.stage-row strong{text-align:right;color:#43634b}.bar{height:7px;border-radius:100px;background:#eff3ee;overflow:hidden}.bar i{display:block;height:100%;background:#8dbb9d;border-radius:100px}.stage-row:nth-child(3) .bar i,.stage-row:nth-child(4) .bar i{background:#d4b273}.stage-row:nth-child(5) .bar i{background:#95a9c5}.search-row{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px;gap:10px}.search-field{max-width:350px;flex:1}.search-field input{margin-top:6px}.editor-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);gap:16px;align-items:start}.editor-side{min-width:0}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.fields .wide{grid-column:1/-1}label{font-size:11px;font-weight:750;color:#637a68;display:block}label em{color:#c26b58;font-style:normal}input,select,textarea{display:block;width:100%;border:1px solid #dfe8e0;background:#fff;color:#273d2f;border-radius:8px;margin-top:7px;padding:10px 11px;outline:none;font-size:12px}input:focus,select:focus,textarea:focus{border-color:#7aa98b;box-shadow:0 0 0 3px #e8f2e9}textarea{resize:vertical;line-height:1.55}.form-section{border-top:1px solid #edf1ed;margin-top:24px;padding-top:20px}.form-section h3 small{font-size:10px;color:#9baa9e;font-weight:500;margin-left:5px}.form-actions{display:flex;align-items:center;gap:13px;margin-top:23px}.canvas-header{display:flex;align-items:center;justify-content:space-between;margin:15px 0 8px;font-size:11px}.canvas-header strong{color:#667b6a}#pen-canvas{width:100%;height:210px;border:1px solid #dfe9df;border-radius:9px;background-color:#fff;background-image:linear-gradient(#eef3ee 1px,transparent 1px);background-size:100% 30px;touch-action:none;cursor:crosshair}.note-submit{margin-top:12px;width:100%}.note-list{display:grid;gap:10px}.note-item{border:1px solid #e9eee9;border-radius:9px;padding:13px;background:#fbfdfb}.note-meta{color:#819487;font-size:10px;font-weight:700;margin-bottom:8px}.note-text{font-size:12px;white-space:pre-wrap;line-height:1.65;word-break:break-word}.note-item img{width:100%;margin-top:10px;border:1px solid var(--line);border-radius:6px}.email-card{display:flex;gap:17px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:13px;padding:24px;margin-bottom:16px}.email-symbol{width:43px;height:43px;border-radius:11px;display:grid;place-items:center;background:var(--soft);color:var(--green);flex:none}.email-card h2{margin:0 0 8px;font-size:16px}.email-card p{margin:0 0 14px;color:#798d7d;font-size:12px;line-height:1.7}.inline-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.inline-form label{min-width:240px}#users-list{margin-bottom:25px}.toast{position:fixed;bottom:24px;right:24px;background:#234a36;color:#fff;padding:12px 16px;border-radius:9px;font-size:12px;box-shadow:0 10px 30px #0002;z-index:10}.toast.error{background:#a44239}.overlay{position:fixed;inset:0;background:#1e3328aa;z-index:20;display:grid;place-items:center;padding:20px}.modal{width:min(420px,100%);background:#fff;padding:28px;border-radius:14px;box-shadow:0 18px 60px #0003}.modal h2{margin:0 0 8px}.modal p{font-size:12px;line-height:1.6;color:#788b7d}.modal button{width:100%;margin-top:18px}.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,#e6f0e8,transparent 40%),#f5f7f5;padding:20px}.login-card{background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 18px 60px #234a3410;padding:36px;width:min(420px,100%)}.login-brand{display:flex;align-items:center;gap:11px;color:var(--green);font-size:17px;font-weight:900;margin-bottom:40px}.login-brand small{display:block;font-size:10px;color:#96a59a;font-weight:500;margin-top:2px}.login-card h1{font-size:26px;margin:0 0 8px}.login-card p{color:var(--muted);font-size:12px;margin:0 0 26px}.login-card label{margin-bottom:16px}.login-card .button{width:100%;margin-top:5px}.form-error{background:#fff1ed;color:#a34939;border-radius:7px;padding:10px;margin-top:13px;font-size:11px}.login-foot{border-top:1px solid var(--line);margin-top:28px;padding-top:18px;text-align:center;color:#a2aea5;font-size:10px}
.progress{width:100%;height:7px;appearance:none;border:0;border-radius:100px;overflow:hidden;background:#eff3ee}.progress::-webkit-progress-bar{background:#eff3ee;border-radius:100px}.progress::-webkit-progress-value{background:#8dbb9d;border-radius:100px}.progress::-moz-progress-bar{background:#8dbb9d;border-radius:100px}.stage-row:nth-child(3) .progress::-webkit-progress-value,.stage-row:nth-child(4) .progress::-webkit-progress-value{background:#d4b273}.stage-row:nth-child(5) .progress::-webkit-progress-value{background:#95a9c5}
.handwriting-entry{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:17px 0 12px;padding:15px;border:1px solid #e5eee6;background:#f8fbf8;border-radius:9px}.handwriting-entry strong{font-size:12px;color:#486b50}.handwriting-entry p{font-size:11px;color:#8fa092;line-height:1.5;margin:5px 0 0}.handwriting-entry .button{text-decoration:none}.handwriting-preview{border:1px solid var(--line);border-radius:8px;padding:9px;margin-bottom:12px}.handwriting-preview img{display:block;width:100%;max-height:120px;object-fit:contain;background:#fff}.handwriting-preview span{display:block;color:#819385;font-size:10px;margin-top:6px}
body.handwriting-open{overflow:hidden}.handwriting-screen{position:fixed;inset:0;z-index:50;width:100vw;height:100vh;height:100dvh;background:#f5f8f5;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto}.handwriting-top{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#fff;border-bottom:1px solid var(--line);padding:13px 24px}.handwriting-top h1{font-size:19px;margin:0 0 3px}.handwriting-top p{font-size:11px;color:#8b9b90;margin:0}.handwriting-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 24px}.handwriting-modes,.handwriting-tools{display:flex;gap:7px;flex-wrap:wrap}.mode-button{border:1px solid #dce7de;color:#6e8574;border-radius:8px;background:#fff;font-size:12px;font-weight:800;padding:9px 15px}.mode-button.active{border-color:#b3d2b9;background:var(--soft);color:var(--green)}.handwriting-draw-panel{min-height:0;margin:0 24px 13px;border:1px solid #dce8dd;border-radius:9px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}.handwriting-draw-panel canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.handwriting-text-panel{min-height:0;margin:0 24px 13px;border:1px solid #dce8dd;border-radius:9px;background:#fff;padding:24px;display:flex;flex-direction:column;gap:15px}.handwriting-text-panel h2{font-size:17px;margin:0 0 7px}.handwriting-text-panel p{font-size:12px;color:#788f7c;line-height:1.6;margin:0}.handwriting-text-panel textarea{flex:1;min-height:120px;margin:0;font-size:17px;line-height:1.8;background:repeating-linear-gradient(#fff,#fff 35px,#e8eee9 36px)}.handwriting-text-panel .button{align-self:flex-end}.handwriting-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#fff;border-top:1px solid var(--line);padding:12px 24px}.handwriting-bottom span{font-size:11px;color:#8ca08f}
@media(max-width:1050px){.home-grid,.editor-grid{grid-template-columns:1fr}.main{padding:26px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.app-shell{grid-template-columns:60px minmax(0,1fr)}.rail{padding-top:13px}.nav-button.active:before{left:-8px}.topbar{height:56px;padding:0 14px;gap:10px}.wordmark span,.top-date{display:none}.main{padding:20px 14px 35px}.page-head{align-items:start;flex-direction:column}.page-head h1{font-size:23px}.panel{padding:17px}.kpi{padding:16px;min-height:95px}.kpi strong{font-size:26px}.fields{grid-template-columns:1fr}.fields .wide{grid-column:auto}.editor-grid{gap:0}.user-name{font-size:10px}}
@media(max-width:680px){.handwriting-top,.handwriting-toolbar,.handwriting-bottom{padding:10px 12px}.handwriting-top h1{font-size:16px}.handwriting-top p,.handwriting-bottom span{display:none}.handwriting-draw-panel,.handwriting-text-panel{margin:0 10px 8px}.handwriting-text-panel{padding:14px}.handwriting-bottom .button{width:100%}.handwriting-entry{align-items:flex-start;flex-direction:column}.handwriting-entry .button{width:100%}}
.handwriting-draw-panel{background:repeating-linear-gradient(#fff,#fff 29px,#e8eee9 30px)}#handwriting-screen #pen-canvas{display:block;width:100%;height:100%;border:0;border-radius:0;background:transparent;touch-action:none;cursor:crosshair}
.form-success{background:#e8f2e9;color:#315d3e;border-radius:7px;padding:12px;margin-top:16px;font-size:12px;line-height:1.6}
.login-foot a{color:var(--green);font-weight:700;text-decoration:none}.login-foot a:hover{text-decoration:underline}
