*{box-sizing:border-box}:root{--navy:#102c46;--blue:#1769aa;--ink:#172b3d;--muted:#728295;--line:#e4eaf0;--bg:#f3f6f9;--green:#16845b;--amber:#bc7417}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"Apple SD Gothic Neo","Malgun Gothic",sans-serif}.hidden{display:none!important}.shell{min-height:100vh;display:grid;grid-template-columns:230px 1fr}.sidebar{background:var(--navy);color:#fff;padding:21px 14px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:9px;padding:0 8px 21px;border-bottom:1px solid #ffffff25;font-weight:750;font-size:18px}.brand img{width:41px;height:41px;border-radius:10px;object-fit:cover}.brand small{display:block;font-weight:400;font-size:10px;color:#becbd5;margin-top:3px}.sidebar nav{padding-top:18px}.nav-link{width:100%;text-align:left;display:block;padding:11px 12px;border:0;background:transparent;border-radius:8px;color:#d9e3eb;font-size:13px;cursor:pointer;margin:3px 0}.nav-link.active,.nav-link:hover{background:#ffffff18;color:#fff}.side-bottom{margin-top:auto;border-top:1px solid #ffffff25;padding:14px 9px;color:#e1e9ef;font-size:11px;line-height:1.7}.side-bottom small{color:#b7c6d2}.main{min-width:0}.topbar{height:66px;background:#fff;border-bottom:1px solid var(--line);padding:0 26px;display:flex;align-items:center;justify-content:space-between}.topbar b{font-size:14px}.topbar small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.top-actions{display:flex;align-items:center;gap:8px;font-size:11px;color:#5e7183}.content{max-width:1250px;margin:auto;padding:25px 26px 55px}.pagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.pagehead h1{font-size:23px;margin:0 0 6px}.pagehead p{font-size:11px;color:var(--muted);margin:0;line-height:1.6}.btn{border:1px solid var(--line);background:white;border-radius:7px;padding:9px 12px;font-size:11px;font-weight:650;color:var(--ink);cursor:pointer}.btn.primary{background:var(--blue);border-color:var(--blue);color:white}.btn.good{background:var(--green);border-color:var(--green);color:#fff}.btn.danger{color:#b64949}.btn:disabled{opacity:.55;cursor:default}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.stat,.panel,.job-card{background:white;border:1px solid var(--line);border-radius:10px}.stat{padding:14px 16px}.stat span{font-size:10px;color:var(--muted)}.stat strong{display:block;font-size:24px;margin-top:6px}.panel{overflow:hidden;margin-bottom:14px}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}.panel-head h2{font-size:14px;margin:0}.panel-head small{font-size:10px;color:var(--muted)}.panel-body{padding:15px 16px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.field{margin-bottom:10px}.field label{display:block;font-size:10px;font-weight:700;color:#536779;margin-bottom:5px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:7px;padding:9px;font:inherit;font-size:11px;background:white;color:var(--ink)}.field textarea{min-height:60px;resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:7px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;text-align:left}th{background:#fafbfd;color:#8795a2;font-size:10px;padding:10px 12px}td{border-top:1px solid #edf0f3;padding:11px 12px;font-size:11px}.muted{color:var(--muted);font-size:10px}.badge{display:inline-block;border-radius:20px;padding:4px 8px;background:#e8f5ee;color:var(--green);font-size:9px;font-weight:700}.badge.pending{background:#fff2dc;color:var(--amber)}.categories{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin:0 0 16px}.cat-box{background:white;border:1px solid var(--line);border-radius:8px;padding:9px 10px}.cat-box span{font-size:10px;display:block}.cat-box b{font-size:17px;color:var(--blue);display:block;margin-top:4px}.job-list{display:grid;gap:10px}.job-card{padding:13px 15px}.job-top{display:flex;justify-content:space-between;gap:12px}.job-top h3{font-size:12px;margin:0 0 4px}.job-top p{font-size:10px;color:var(--muted);margin:0}.job-controls{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.2fr auto;gap:7px;align-items:end;margin-top:11px}.inline-field label{display:block;font-size:9px;color:var(--muted);margin-bottom:4px}.inline-field input,.inline-field select,.inline-field textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:7px;font:inherit;font-size:10px}.job-buttons{display:flex;gap:5px;flex-wrap:wrap}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:16px;background:linear-gradient(135deg,#eaf3f9,#f7f9fb)}.auth-card{width:min(420px,100%);background:white;border:1px solid var(--line);border-radius:15px;padding:25px;box-shadow:0 16px 50px #102c4614}.auth-card .brand{border:0;padding:0;margin-bottom:22px;color:var(--navy)}.auth-card h1{font-size:20px;margin:0 0 7px}.auth-card p{font-size:11px;color:var(--muted);line-height:1.6;margin:0 0 16px}.auth-card .btn{width:100%;margin-top:4px;padding:11px}.error{color:#b94343;font-size:11px;min-height:16px;margin:10px 0}.toast{position:fixed;z-index:30;left:50%;bottom:20px;transform:translate(-50%,15px);opacity:0;transition:.2s;background:#15364f;color:#fff;padding:11px 16px;border-radius:9px;font-size:12px;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}.mobile-nav{display:none}.summary-head{display:flex;align-items:center;gap:8px}.summary-head input{padding:7px;border:1px solid var(--line);border-radius:6px;font-size:10px}@media(max-width:900px){.shell{grid-template-columns:190px 1fr}.content{padding:20px}.categories{grid-template-columns:repeat(4,1fr)}.job-controls{grid-template-columns:1fr 1fr 1fr}.job-buttons{grid-column:1/-1}}@media(max-width:620px){.shell{display:block;padding-bottom:64px}.sidebar{display:none}.topbar{height:56px;padding:0 12px}.top-actions{gap:5px}.top-actions span{display:none}.top-actions .btn{padding:8px;font-size:10px}.content{padding:17px 12px 30px}.pagehead h1{font-size:20px}.stats{grid-template-columns:1fr 1fr;gap:7px}.stat{padding:11px}.stat strong{font-size:21px}.categories{display:flex;overflow:auto;padding-bottom:4px}.cat-box{min-width:100px}.grid2,.grid3{grid-template-columns:1fr}.job-controls{grid-template-columns:1fr 1fr}.job-buttons{grid-column:1/-1}.job-top{display:block}.job-card{padding:12px}.mobile-nav{position:fixed;display:flex;z-index:5;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);height:62px;justify-content:space-around;align-items:center}.mobile-nav .nav-link{width:auto;margin:0;text-align:center;padding:10px 7px;color:#6e8091;font-size:9px}.mobile-nav .nav-link.active{color:var(--blue);background:transparent;font-weight:700}.form-actions{justify-content:stretch}.form-actions .btn{flex:1}}

/* IBPinc 데스크톱 업무화면: 첨부한 ERP의 밝은 배경과 촘촘한 업무 레이아웃 */
:root{--navy:#f0f1f3;--blue:#2878d0;--ink:#263746;--muted:#707b85;--line:#d7dadd;--bg:#f4f4f4}
body{background:#f4f4f4;color:#333}
.shell{grid-template-columns:178px minmax(0,1fr);min-height:100vh;background:#f4f4f4}
.sidebar{background:#e9eaec;color:#41484e;border-right:1px solid #cfd2d5;padding:12px 8px}
.brand{color:#263746;border-bottom:1px solid #d3d6d9;font-size:16px;padding:2px 5px 12px}
.brand img{width:34px;height:34px;border-radius:3px}
.brand small{color:#707b85}
.sidebar nav{padding-top:10px}
.nav-link{border-radius:2px;color:#48535d;font-size:11px;padding:9px 9px;margin:1px 0;border-bottom:1px solid #d8dade}
.nav-link.active,.nav-link:hover{background:#2d78cc;color:#fff}
.side-bottom{color:#66717a;border-color:#d3d6d9}
.side-bottom small{color:#707b85}
.main{min-width:0;background:#f4f4f4}
.topbar{height:45px;padding:0 15px;border-bottom:1px solid #d2d5d8;box-shadow:0 1px 2px #00000008}
.topbar b{font-size:12px;color:#34516b}
.topbar small{font-size:9px}
.content{width:100%;max-width:none;margin:0;padding:12px 14px 32px}
.pagehead{margin-bottom:10px;padding-bottom:8px;border-bottom:2px solid #2e7bd1}
.pagehead h1{font-size:17px;color:#333;margin-bottom:3px}
.pagehead p{font-size:10px}
.panel,.stat,.job-card{border-radius:2px;box-shadow:none;border-color:#d6d9dc}
.panel{margin-bottom:9px}
.panel-head{padding:9px 11px;border-bottom-color:#2e7bd1}
.panel-head h2{font-size:12px}
.panel-body{padding:10px 11px}
.btn{border-radius:2px;padding:7px 10px;font-size:10px}
.btn.primary{background:#287bd2;border-color:#287bd2}
.field{margin-bottom:7px}
.field label{font-size:9px;margin-bottom:3px}
.field input,.field select,.field textarea{border-radius:2px;background:#f4f4f4;padding:7px;font-size:10px}
th{background:#ededed;color:#4f5a63;padding:7px 8px;border:1px solid #d7dadd;font-size:9px}
td{padding:7px 8px;border:1px solid #d7dadd;font-size:10px;background:#fff}
.table-wrap{border-top:1px solid #2f7bd1}
.categories{gap:5px;margin-bottom:10px}
.cat-box{border-radius:2px;padding:7px 9px}
.cat-box b{font-size:15px}
.job-card{padding:10px 12px}
.job-controls{gap:5px}
.inline-field input,.inline-field select,.inline-field textarea{border-radius:2px;background:#f5f5f5}
.summary-head input{border-radius:2px;background:#f5f5f5}
@media(min-width:1000px){.sidebar{min-height:100vh}.topbar{position:sticky;top:0;z-index:4}.stats{gap:7px}.stat{padding:10px 12px}.stat strong{font-size:20px}}
@media(max-width:900px){.shell{grid-template-columns:160px 1fr}.content{padding:12px}}
@media(max-width:620px){.shell{display:block}.sidebar{display:none}.topbar{height:52px;padding:0 10px}.content{padding:12px 9px 25px}.pagehead h1{font-size:16px}.mobile-nav .nav-link{border:0}}
