:root{--brand:#087f78;--brand-dark:#075e59;--ink:#162b36;--muted:#687985;--line:#e0e8eb;--bg:#f4f7f9;--danger:#be3944;--warn:#a76309}*{box-sizing:border-box}body{margin:0;font-family:"Malgun Gothic","Apple SD Gothic Neo",system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.6}button,input,select,textarea{font:inherit}button,.button{border:1px solid transparent;border-radius:9px;padding:10px 17px;background:var(--brand);color:#fff;font-weight:650;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.4;text-decoration:none;min-height:42px}button:hover,.button:hover{filter:brightness(.96)}button:disabled{opacity:.55;cursor:wait}button.secondary,.button.secondary{background:#fff;border-color:var(--line);color:var(--ink)}button.ghost{background:transparent;color:var(--brand);padding:5px 9px;min-height:35px}button.danger{background:#fff0f1;color:var(--danger);border-color:#f3cbd0}button.small,.button.small{font-size:13px;min-height:34px;padding:6px 10px}button.icon-button{color:var(--muted);background:transparent;font-size:24px;padding:1px 10px;min-height:30px}input,select,textarea{width:100%;border:1px solid #ccd8de;background:#fff;border-radius:8px;padding:10px 11px;min-height:43px;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #087f7814}textarea{min-height:96px;resize:vertical}input[type=checkbox]{width:19px;min-height:19px;margin-right:7px;accent-color:var(--brand)}input[readonly]{background:#f0f5f5}label{display:block;font-weight:600;font-size:13px;color:#445a68;margin-bottom:6px}.field{margin-bottom:16px}.field small,.muted{font-size:13px;color:var(--muted)}h1,h2,h3,p{margin-top:0}h1{font-size:27px;letter-spacing:-1px;line-height:1.35}h2{font-size:20px;letter-spacing:-.5px}h3{font-size:16px}a{color:var(--brand)}.boot{padding:70px;text-align:center}.logo{display:flex;gap:11px;align-items:center}.logo img{width:38px;height:38px}.logo strong{font-size:24px;letter-spacing:-.7px}.logo small{display:block;color:var(--muted);font-size:10px;letter-spacing:2px;line-height:1}.app{display:grid;grid-template-columns:234px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:30px 18px;position:fixed;top:0;bottom:0;width:234px;display:flex;flex-direction:column;z-index:20}.sidebar .logo{padding:0 10px 31px}.nav-label{font-size:10px;font-weight:750;letter-spacing:1.8px;color:#90a0a8;padding:18px 15px 8px}.nav button{background:transparent;color:#546977;display:flex;justify-content:flex-start;gap:14px;width:100%;margin:3px 0;padding:12px 15px;font-weight:550}.nav button span:first-child{width:22px;font-size:17px;opacity:.8}.nav button.active{background:#e8f5f2;color:var(--brand);font-weight:750}.sidebar-note{margin-top:auto;padding:24px 12px 0;font-size:12px;color:var(--muted)}.main{grid-column:2;min-width:0}.topbar{min-height:79px;background:#ffffffee;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 34px}.topbar-left strong{display:block;font-size:16px}.topbar-left small{color:var(--muted);font-size:12px}.topbar-right{display:flex;align-items:center;gap:14px}.avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;color:var(--brand);background:#e2efee;font-weight:bold}.content{padding:32px 34px 60px;max-width:1650px;margin:auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.page-head p{margin:8px 0 0;color:var(--muted);font-size:14px}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:24px}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 2px 4px #20313a03}.card{padding:22px 24px}.card .metric{font-size:33px;font-weight:750;letter-spacing:-1px;margin:10px 0 2px}.card .metric em{font-size:13px;font-weight:400;font-style:normal;color:var(--muted);margin-left:6px}.card-label{font-size:13px;color:var(--muted)}.card-label::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--brand);margin-right:8px}.card.warn .metric{color:var(--warn)}.card.danger .metric{color:var(--danger)}.panel{padding:22px;margin-bottom:20px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.panel-head h2,.panel-head h3{margin:0}.split{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.full{grid-column:1/-1}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:18px}.toolbar .field{margin-bottom:0;min-width:160px}.toolbar .search{flex:1;min-width:240px}.table-wrap{overflow:auto;width:100%;border:1px solid var(--line);border-radius:9px}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{background:#f7f9fa;font-weight:650;color:#617381;font-size:12px;padding:12px 14px;border-bottom:1px solid var(--line)}td{padding:13px 14px;border-bottom:1px solid #edf1f3;font-size:14px;vertical-align:middle}tbody tr:last-child td{border:0}tbody tr:hover{background:#f9fcfc}td .sub{display:block;font-size:11px;color:var(--muted);line-height:1.5}td .name{font-weight:650}.number{text-align:right;font-variant-numeric:tabular-nums}.negative{color:var(--danger)}.positive{color:var(--brand)}.pill{display:inline-block;border-radius:30px;background:#edf4f3;color:var(--brand);padding:3px 9px;font-size:11px;font-weight:700;white-space:nowrap}.pill.warn{background:#fff3dc;color:var(--warn)}.pill.danger{background:#fcebed;color:var(--danger)}.pill.neutral{background:#edf0f4;color:#687785}.empty{padding:48px 20px;text-align:center;color:var(--muted);font-size:14px}.notice{border:1px solid #cee7df;background:#eff8f5;border-radius:10px;color:#316b5c;padding:13px 16px;font-size:13px;margin-bottom:20px}.notice.warn{background:#fff8ec;border-color:#efdcba;color:#956214}.notice.error{background:#fff0f1;color:var(--danger);border-color:#f3cbd0}.notice a{font-weight:700}.upload-zone{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 24px;background:#f1f9f8;border:1px dashed #9bc9c0;border-radius:11px;margin-bottom:20px}.upload-zone h3{margin-bottom:5px}.upload-zone p{margin:0;color:var(--muted);font-size:13px}.hidden{display:none!important}.doc-grid{display:grid;grid-template-columns:minmax(250px,.7fr) minmax(0,1.3fr);gap:22px}.photo-panel{position:sticky;top:20px;align-self:start;max-height:85vh;overflow:auto;background:#e5ebee;border-radius:11px;padding:12px}.photo-panel img{width:100%;display:block;border-radius:5px}.doc-lines th,.doc-lines td{padding:7px}.doc-lines input{min-width:84px;padding:8px;font-size:13px}.doc-lines .item-input{min-width:220px}.doc-lines .qty-input{width:85px}.doc-lines .price-input{width:105px}.totals{display:flex;gap:28px;justify-content:flex-end;padding:18px 0;flex-wrap:wrap}.totals span{font-size:12px;color:var(--muted)}.totals strong{display:block;font-size:21px}.checkline{display:flex;align-items:flex-start;gap:4px;font-size:13px;font-weight:500;padding:15px;background:#f5f8f9;border-radius:8px}.checkline input{flex:none}.ocr-text{white-space:pre-wrap;font-family:monospace;font-size:12px;max-height:300px;overflow:auto;background:#f5f7f8;border:1px solid var(--line);border-radius:8px;padding:13px}.login{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.login-hero{background:linear-gradient(145deg,#063f49,#086e68 65%,#0a8979);color:white;padding:12vh 9vw 6vh 7vw;display:flex;flex-direction:column;position:relative;overflow:hidden}.login-hero:after{content:'+';font-size:550px;line-height:1;font-weight:800;position:absolute;bottom:-120px;right:-70px;opacity:.045}.login-hero .logo{margin-bottom:14vh}.login-hero .logo small{color:#a3c5c6}.login-hero h1{font-size:43px;line-height:1.35;letter-spacing:-2px}.login-hero p{color:#b5d7d6;font-size:16px;line-height:1.9}.login-hero .mini{margin-top:auto;padding-top:50px;font-size:12px;letter-spacing:.7px;color:#94bcbc}.login-main{display:flex;align-items:center;justify-content:center;padding:35px}.login-box{width:100%;max-width:365px}.login-box h2{font-size:27px;margin-bottom:7px}.login-box>p{font-size:14px;color:var(--muted);margin-bottom:30px}.login-box button[type=submit]{width:100%;margin-top:10px}.login-footer{font-size:11px;color:#889aa4;margin-top:32px;line-height:1.8}.login-error{color:var(--danger);font-size:13px;margin:12px 0;min-height:20px}dialog{border:1px solid var(--line);border-radius:15px;padding:0;width:min(680px,calc(100% - 28px));max-height:90vh;box-shadow:0 22px 90px #15354033}dialog::backdrop{background:#132e4455;backdrop-filter:blur(2px)}.modal-head{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modal-head h2{margin:0;font-size:20px}#modal-body{padding:23px 24px}.modal-footer{padding:15px 24px;background:#f8fafb;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px}#toasts{position:fixed;bottom:24px;right:25px;z-index:100;max-width:410px}.toast{background:#143d42;color:#fff;padding:15px 20px;border-radius:11px;box-shadow:0 8px 30px #0002;margin-top:10px;font-size:14px}.toast.error{background:#9f3541}.mobile-menu{display:none}.section-note{margin:12px 0 0;font-size:12px;color:var(--muted)}.welcome-strip{display:flex;justify-content:space-between;align-items:center;background:#e6f1f0;border:1px solid #cde1de;border-radius:12px;padding:22px;margin-bottom:24px}.welcome-strip h3{margin:0 0 5px}.welcome-strip p{font-size:13px;color:#577671;margin:0}.stateline{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.stateline:last-child{border:0}.inline-field{display:flex;gap:8px;align-items:center}.inline-field select{flex:1}.page-message{padding:50px;text-align:center}.print-title{display:none}
@media(min-width:1700px){.content{padding-top:40px}}@media(max-width:1200px){.app{grid-template-columns:210px minmax(0,1fr)}.sidebar{width:210px;padding-inline:12px}.content{padding:26px 24px}.topbar{padding:14px 24px}.cards{gap:12px}.card{padding:18px}.split{grid-template-columns:1fr}.doc-grid{grid-template-columns:1fr}.photo-panel{position:relative;max-height:360px}.photo-panel img{max-height:340px;object-fit:contain}.page-head{flex-wrap:wrap}}@media(max-width:760px){body{font-size:14px}input,select,textarea{font-size:16px}.app{display:block}.sidebar{display:none;width:245px;box-shadow:5px 0 30px #0002}.sidebar.open{display:flex}.main{width:100%}.topbar{padding:12px 16px;min-height:68px;gap:10px}.topbar-left strong{font-size:14px}.topbar-right{gap:6px}.topbar-right .person{display:none}.topbar-right button{padding:8px;font-size:12px}.mobile-menu{display:inline-flex}.content{padding:22px 16px 35px}h1{font-size:24px}.page-head{gap:13px;margin-bottom:20px}.page-head p{font-size:13px}.cards{grid-template-columns:1fr 1fr;gap:10px}.card{padding:16px}.card .metric{font-size:29px}.card-label{font-size:12px}.panel{padding:16px;border-radius:11px}.form-grid{grid-template-columns:1fr}.upload-zone{display:block;padding:18px}.upload-zone .actions{margin-top:14px}.toolbar{gap:8px}.toolbar .field{min-width:135px;flex:1}.toolbar .search{min-width:100%}.welcome-strip{align-items:flex-start;gap:15px;flex-direction:column}.login{grid-template-columns:1fr}.login-hero{padding:26px 28px 30px;min-height:220px}.login-hero .logo{margin-bottom:27px}.login-hero h1{font-size:26px;letter-spacing:-1px;margin-bottom:12px}.login-hero p{font-size:13px;margin:0}.login-hero .mini{display:none}.login-main{padding:30px 27px}.login-box h2{font-size:23px}.login-box>p{margin-bottom:22px}.login-footer{margin-top:22px}.doc-grid{display:block}.photo-panel{margin-bottom:18px;max-height:290px}.photo-panel img{max-height:265px}#toasts{left:16px;right:16px;bottom:16px;max-width:none}.totals{gap:18px}.modal-head,#modal-body,.modal-footer{padding:17px}.person-name{display:none}}
@media print{@page{size:A4 landscape;margin:12mm}body{background:white;font-size:11px}.sidebar,.topbar,.actions,.toolbar,.upload-zone,.no-print,button,dialog,#toasts,.photo-panel{display:none!important}.app{display:block}.main{width:100%}.content{padding:0;max-width:none}.panel,.card{border:0;box-shadow:none;padding:5px 0}.table-wrap{overflow:visible;border:0}table{white-space:normal}td,th{padding:7px 5px;font-size:10px}thead{display:table-header-group}tr{break-inside:avoid}h1{font-size:21px}.doc-grid{display:block}.print-title{display:block}.pill{border:1px solid #ccc;background:white!important;color:black!important}.notice{background:white}.cards{display:flex}.card{padding-right:30px}.page-head{margin-bottom:10px}}

/* Narrow-screen header and Korean word wrapping */
body{word-break:keep-all;overflow-wrap:break-word}
@media(max-width:760px){.topbar>.actions{flex-wrap:nowrap;min-width:0;flex:1}.topbar-left{min-width:0}.topbar-left strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:155px}.topbar-right{flex-shrink:0}.topbar-right button{white-space:nowrap}.topbar-right [data-act=password]{display:none}.topbar-left small{font-size:10px}.topbar{padding-inline:12px;gap:7px}.mobile-menu{padding:8px;min-width:36px}.topbar>.actions{gap:7px}}
