*{box-sizing:border-box}
:root{--sidebar-min:220px;--sidebar-max:320px;--gap:16px;--radius:12px}
body{margin:0;font-family:Arial,"Noto Sans KR","Noto Sans",sans-serif;background:#f5f6f8;color:#1f2937}
a{color:inherit}.app{display:grid;grid-template-columns:minmax(var(--sidebar-min),var(--sidebar-max)) minmax(0,1fr);min-height:100vh}
.sidebar{background:#fff;border-right:1px solid #e5e7eb;padding:20px;min-width:0}
.brand{font-size:20px;font-weight:700;line-height:1.35;margin-bottom:18px;overflow-wrap:anywhere}
.nav{display:grid;gap:8px}.nav a{display:flex;align-items:center;min-height:44px;padding:10px 12px;border-radius:10px;text-decoration:none;white-space:normal;line-height:1.35;overflow-wrap:anywhere}
.nav a:hover,.nav a.active{background:#f3f4f6}.main{min-width:0;padding:20px}
.topbar{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;margin-bottom:20px}
.controls,.segment,.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
button,input,select,textarea{font:inherit}button,select,input{min-height:38px;padding:8px 12px;border:1px solid #d1d5db;background:#fff;border-radius:9px}
button{min-width:48px;max-width:100%;white-space:normal;line-height:1.25;cursor:pointer}button.active{font-weight:700;border-width:2px}
button.primary{font-weight:700}button.danger{font-weight:700}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--gap)}
.card,.panel{background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius);padding:18px;min-width:0}
.card .label{font-size:14px;line-height:1.35;min-height:38px;overflow-wrap:anywhere}.card .value{font-size:26px;font-weight:700;margin-top:8px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.field{display:grid;gap:6px;min-width:0}
.field label{font-size:13px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}.field textarea{min-height:80px;padding:10px;border:1px solid #d1d5db;border-radius:9px;resize:vertical}
.table-wrap{width:100%;overflow-x:auto;margin-top:16px;background:#fff;border-radius:var(--radius);border:1px solid #e5e7eb}
table{border-collapse:collapse;width:100%;min-width:860px}th,td{padding:12px 14px;text-align:left;border-bottom:1px solid #eee;vertical-align:middle}
th{white-space:normal;line-height:1.3;overflow-wrap:anywhere}.muted{font-size:13px;opacity:.7}.error{min-height:22px;margin-top:8px;font-size:14px}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(440px,100%);background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:24px}
.login-card h1{font-size:22px;line-height:1.35}.login-form{display:grid;gap:14px}
@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid #e5e7eb}.nav{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
.readonly-box{min-height:38px;padding:8px 12px;border:1px solid #e5e7eb;background:#f9fafb;border-radius:9px;display:flex;align-items:center;min-width:0;overflow-wrap:anywhere}
.packing{margin-top:5px;line-height:1.35;white-space:normal}
