:root{color:#172033;background:#f3f6fb;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}.app{min-height:100vh}.login-shell{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#2f7cf6,#58a6ff)}.login-card{width:min(420px,calc(100vw - 32px));padding:32px;border-radius:16px;background:#fff;box-shadow:0 24px 70px #10439738}.brand-mark{width:56px;height:56px;display:grid;place-items:center;border-radius:16px;color:#fff;font-size:26px;font-weight:800;background:linear-gradient(135deg,#3c8cff,#2568f4)}.brand-mark.small{width:42px;height:42px;border-radius:12px;font-size:20px}.login-card h1{margin:18px 0 6px;font-size:26px}.login-card p,.topbar p{margin:0;color:#7b8494}label{display:grid;gap:8px;margin-top:18px;color:#505b6d}input,select,textarea{width:100%;border:1px solid #dbe4f2;border-radius:10px;padding:10px 12px;color:#172033;background:#fff}textarea{min-height:88px;resize:vertical}.primary,.ghost{border:0;border-radius:10px;padding:10px 16px;cursor:pointer}.primary{color:#fff;background:#2f7cf6;font-weight:700}.ghost{color:#2f7cf6;background:#edf5ff}.danger{color:#e04444;background:#fff0f0}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;padding:18px;background:#fff;border-right:1px solid #e3eaf5}.logo{display:flex;gap:12px;align-items:center;margin-bottom:24px}.logo strong,.logo span{display:block}.logo span{margin-top:4px;color:#7b8494;font-size:13px}.nav-item{width:100%;border:0;border-radius:10px;padding:12px 14px;margin-bottom:8px;text-align:left;color:#505b6d;background:transparent;cursor:pointer}.nav-item.active{color:#2f7cf6;background:#edf5ff;font-weight:700}.main{margin-left:240px;padding:22px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.topbar h2{margin:0 0 4px}.panel{display:grid;gap:16px}.split{grid-template-columns:minmax(0,1fr) 360px;align-items:start}.sms-layout{grid-template-columns:minmax(0,1fr) 380px;align-items:start}.sms-main,.sms-side{display:grid;gap:16px}.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:14px}.metric,.table-card,.form-card,.detail-card{border:1px solid #e3eaf5;border-radius:14px;background:#fff;box-shadow:0 10px 30px #1f4b8c0f}.metric{padding:18px}.metric span{color:#7b8494}.metric strong{display:block;margin-top:8px;font-size:28px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;padding:14px;border:1px solid #e3eaf5;border-radius:14px;background:#fff}.toolbar input,.toolbar select{max-width:260px}.toolbar-note{align-self:center;color:#7b8494;font-size:13px}.table-card{overflow:hidden}.table-card h3,.form-card h3,.detail-card h3{margin:0;padding:16px;border-bottom:1px solid #edf1f8}.table-wrap{overflow-x:auto}table{width:100%;min-width:760px;border-collapse:collapse}th,td{padding:12px 14px;border-bottom:1px solid #edf1f8;text-align:left;white-space:nowrap}th{color:#6d7788;background:#f8faff;font-weight:700}.check-cell{width:48px;text-align:center}.check-cell input{width:auto}.empty{padding:32px;text-align:center;color:#8b95a6}.link-button{border:0;color:#2f7cf6;background:transparent;cursor:pointer}.pagination{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;color:#6d7788;border-top:1px solid #edf1f8;background:#fbfdff}.pagination button{margin:0}.pagination button:disabled{color:#a9b3c3;cursor:not-allowed;background:#f3f6fb}.page-button{min-width:36px;height:36px;border:1px solid #dbe4f2;border-radius:8px;color:#505b6d;background:#fff;cursor:pointer}.page-button.active{color:#fff;border-color:#2f7cf6;background:#2f7cf6;font-weight:700}.package-list{overflow:hidden}.package-groups{display:grid;gap:14px;padding:14px}.package-group{overflow:hidden;border:1px solid #edf1f8;border-radius:10px;background:#fff}.package-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #edf1f8;background:#f8faff}.package-group-head span{color:#7b8494;font-size:13px}.detail-card{padding-bottom:16px}.detail-card p{margin:0;padding:0 16px 16px;color:#6d7788}.button-row{display:flex;flex-wrap:wrap;gap:10px;padding:0 16px}.form-card{padding-bottom:16px}.form-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid #edf1f8}.form-card .form-head h3{padding:0;border-bottom:0}.form-card .form-head button{margin:0;white-space:nowrap}.form-card label{padding:0 16px}.form-card button{margin:18px 16px 0}.hint{margin:12px 16px 0;color:#7b8494;font-size:13px;line-height:1.6}.result-note{margin:14px 16px 0;padding:10px 12px;border:1px solid #cfe1ff;border-radius:10px;color:#2f65c8;background:#f3f8ff}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 16px}.form-grid label,.form-grid.compact{padding:0}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:24px;background:#0f1c306b}.modal-panel{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 48px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid #e3eaf5;border-radius:14px;background:#fff;box-shadow:0 24px 80px #14305b47}.small-modal{width:min(560px,calc(100vw - 32px))}.modal-head,.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px}.modal-head{border-bottom:1px solid #edf1f8}.modal-head h3{margin:0}.modal-body{overflow-y:auto;padding:0 18px 18px}.modal-foot{justify-content:flex-end;border-top:1px solid #edf1f8;background:#fbfdff}.icon-close{width:34px;height:34px;border:0;border-radius:10px;color:#6d7788;background:#f1f5fb;cursor:pointer;font-size:18px;line-height:1}.detail-section{margin:0 16px 16px;padding:14px;border:1px solid #edf1f8;border-radius:12px;background:#fbfdff}.detail-section strong{display:block;margin-bottom:10px}.kv-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;padding:8px 0;border-top:1px solid #edf1f8}.kv-row span{color:#7b8494}.kv-row em{font-style:normal;color:#172033;word-break:break-all}.inline-check{display:flex;grid-template-columns:none;align-items:center;gap:8px;margin-top:10px}.inline-check input{width:auto}.config-form{max-width:760px}@media (max-width: 900px){.sidebar{position:static;width:auto;display:flex;overflow-x:auto;gap:8px}.logo{min-width:220px;margin-bottom:0}.nav-item{white-space:nowrap;margin-bottom:0}.main{margin-left:0;padding:14px}.metric-grid,.split,.sms-layout,.form-grid,.kv-row{grid-template-columns:1fr}.topbar{align-items:flex-start}}
