:root{--bg:#f5f7fb;--panel:#fff;--ink:#172033;--muted:#7a8496;--line:#e6eaf0;--primary:#4f6ef7;--primary2:#6d5dfc;--green:#119d72;--red:#d45454;--amber:#c78a21;--shadow:0 8px 30px rgba(27,39,75,.06);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:flex}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:#111827;color:#fff;padding:26px 18px 20px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 28px}.brand-mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#6d5dfc,#4f8df7);display:grid;place-items:center;font-weight:900;font-size:20px;box-shadow:0 8px 20px rgba(79,110,247,.28)}.brand strong{display:block;font-size:17px;letter-spacing:-.4px}.brand span{display:block;color:#8f9aaf;font-size:10px;letter-spacing:1.8px;margin-top:3px}.sidebar nav{display:flex;flex-direction:column;gap:7px}.nav-item{border:0;background:transparent;color:#aab3c2;padding:12px 13px;border-radius:11px;text-align:left;cursor:pointer;display:flex;align-items:center;gap:12px;font-weight:700}.nav-item:hover,.nav-item.active{background:#202a3b;color:#fff}.nav-icon{width:20px;text-align:center;font-size:18px}.sidebar-foot{margin-top:auto;color:#7f899a;font-size:11px;padding:8px}.memory-card{display:flex;gap:9px;align-items:center;border:1px solid #2a3548;border-radius:12px;padding:12px;margin-bottom:15px;background:#172033}.memory-card b{display:block;color:#eaf0ff;font-size:12px}.memory-card small{display:block;color:#8390a4;margin-top:3px}.pulse{width:8px;height:8px;background:#35c98b;border-radius:50%;box-shadow:0 0 0 5px rgba(53,201,139,.1)}
.main{margin-left:238px;min-width:0;width:calc(100% - 238px);padding:0 34px 44px}.topbar{height:104px;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar h1{margin:0;font-size:25px;letter-spacing:-.8px}.topbar p{margin:6px 0 0;color:var(--muted);font-size:13px}.top-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.select,.input,.textarea{border:1px solid #dfe4ec;background:#fff;border-radius:10px;color:var(--ink);outline:none;transition:.15s}.select{padding:10px 32px 10px 12px}.select.wide{width:100%}.input{padding:10px 12px;width:100%}.textarea{padding:12px;width:100%;resize:vertical;line-height:1.5}.input:focus,.select:focus,.textarea:focus{border-color:#9dacfc;box-shadow:0 0 0 3px rgba(79,110,247,.08)}.select.small,.input.small{padding-top:8px;padding-bottom:8px;font-size:12px;min-width:120px}.btn{border:1px solid transparent;border-radius:10px;padding:10px 14px;font-weight:750;cursor:pointer;transition:.15s;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--primary);color:#fff;box-shadow:0 5px 14px rgba(79,110,247,.18)}.btn.ghost{background:#fff;border-color:#dfe4ec;color:#3f4a5f}.btn.compact{padding:8px 11px;font-size:12px}.btn.danger{color:var(--red);border-color:#f2caca}.text-btn{border:0;background:none;color:var(--primary);font-weight:750;cursor:pointer;padding:10px 0;text-align:left}.view{display:none}.view.active{display:block}.hero-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi-card{background:var(--panel);border:1px solid #e8ebf1;border-radius:16px;padding:20px 21px;box-shadow:var(--shadow);min-height:126px;position:relative;overflow:hidden}.kpi-card.accent:after{content:"";position:absolute;right:-26px;top:-32px;width:95px;height:95px;border-radius:50%;background:linear-gradient(135deg,rgba(79,110,247,.13),rgba(109,93,252,.04))}.kpi-card span{display:block;font-size:12px;color:var(--muted);font-weight:700}.kpi-card strong{display:block;margin-top:15px;font-size:25px;letter-spacing:-.7px}.kpi-card small{display:block;margin-top:8px;color:#9aa3b1;font-size:11px}.notice{margin-top:14px;background:#fff9e9;border:1px solid #f0dfad;border-radius:14px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between}.notice>div{display:flex;gap:11px;align-items:center}.notice-icon{width:30px;height:30px;border-radius:10px;background:#f9e6a7;color:#8d671c;display:grid;place-items:center;font-weight:900}.notice b{display:block;font-size:13px}.notice small{display:block;color:#9a7d45;margin-top:3px}.hidden{display:none!important}.grid-main{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,.7fr);gap:14px;margin-top:14px}.panel{background:var(--panel);border:1px solid #e8ebf1;border-radius:16px;box-shadow:var(--shadow);padding:20px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:17px}.panel-head h2{margin:0;font-size:15px;letter-spacing:-.3px}.panel-head p{margin:5px 0 0;color:var(--muted);font-size:11px}.badge{background:#f0f3ff;color:var(--primary);padding:7px 9px;border-radius:9px;font-size:11px;font-weight:800}.category-bars{display:flex;flex-direction:column;gap:10px}.cat-row{display:grid;grid-template-columns:95px minmax(100px,1fr) 105px;gap:12px;align-items:center;font-size:12px}.cat-name{font-weight:700}.bar-track{height:8px;background:#eef1f6;border-radius:99px;overflow:hidden}.bar-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#5c79f7,#7b67fc);min-width:0}.cat-value{text-align:right;font-variant-numeric:tabular-nums;font-weight:750}.compact-panel{padding-bottom:16px}.balance-list>div{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #eef1f5}.balance-list span{font-size:12px;color:var(--muted)}.balance-list strong{font-size:14px}.balance-list .balance-total{border-bottom:0;padding-top:16px}.balance-list .balance-total strong{color:var(--primary);font-size:18px}.table-panel{margin-top:14px;padding:0;overflow:hidden}.table-panel .panel-head{padding:19px 20px 0}.table-tools{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.table-wrap{overflow:auto;max-height:520px}table{width:100%;border-collapse:collapse;font-size:12px}thead th{position:sticky;top:0;background:#f8f9fc;color:#7b8494;font-size:10px;text-transform:none;letter-spacing:.1px;text-align:left;padding:11px 14px;border-top:1px solid #edf0f4;border-bottom:1px solid #e8ebf0;z-index:2}tbody td{padding:11px 14px;border-bottom:1px solid #eef1f5;vertical-align:middle}tbody tr:hover{background:#fafbfe}.num{text-align:right;font-variant-numeric:tabular-nums}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800;background:#f0f2f6;color:#606a78}.pill.warn{background:#fff3d2;color:#9b6a0a}.pill.green{background:#e7f7f0;color:#14815e}.pill.blue{background:#edf1ff;color:#4f63d8}.raw-list{max-width:260px;color:#8b94a3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-btn{border:1px solid #e1e5ec;background:#fff;border-radius:8px;padding:6px 9px;cursor:pointer;font-size:11px;color:#4b5668}.row-btn:hover{border-color:#aebaf7;color:var(--primary)}.full-height{margin-top:0}.status-diff.plus{color:var(--red)}.status-diff.minus{color:var(--green)}
.modal-backdrop{position:fixed;inset:0;background:rgba(9,15,28,.44);backdrop-filter:blur(3px);z-index:80;opacity:0;pointer-events:none;transition:.18s}.modal-backdrop.show{opacity:1;pointer-events:auto}.modal{position:fixed;z-index:90;left:50%;top:50%;transform:translate(-50%,-47%) scale(.98);width:min(520px,calc(100vw - 28px));max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:18px;box-shadow:0 26px 80px rgba(11,20,40,.25);opacity:0;pointer-events:none;transition:.18s}.modal.show{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}.modal-head{display:flex;justify-content:space-between;gap:12px;padding:21px 22px 14px;border-bottom:1px solid #edf0f4}.modal-head h3{margin:0;font-size:17px}.modal-head p{margin:5px 0 0;color:var(--muted);font-size:11px}.icon-btn{border:0;background:#f1f3f7;width:31px;height:31px;border-radius:9px;font-size:20px;cursor:pointer;color:#697386}.modal-body{padding:18px 22px;display:flex;flex-direction:column;gap:13px}.modal-body label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:750;color:#667083}.modal-body .check{flex-direction:row;align-items:center;font-size:12px;font-weight:600;color:#4d586b}.modal-body .check input{width:16px;height:16px}.modal-foot{padding:14px 22px 20px;display:flex;justify-content:flex-end;gap:8px}.spacer{flex:1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.span-2{grid-column:1/-1}.dropzone{border:1.5px dashed #bdc7da;border-radius:14px;min-height:138px;display:grid!important;place-items:center;text-align:center;background:#f9faff;cursor:pointer;padding:22px}.dropzone b{font-size:14px;color:#44516a}.dropzone span{font-size:11px;color:#8b95a6;font-weight:500}.file-name{padding:10px 12px;border-radius:10px;background:#f3f5f8;color:#647084;font-size:11px}.modal-loading{opacity:.6;pointer-events:none}#toast{position:fixed;z-index:200;right:22px;bottom:22px;display:flex;flex-direction:column;gap:8px}.toast-item{background:#162033;color:#fff;border-radius:11px;padding:11px 14px;box-shadow:0 10px 30px rgba(0,0,0,.18);font-size:12px;animation:toastin .2s ease}.toast-item.error{background:#8f3c3c}@keyframes toastin{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
@media(max-width:1100px){.hero-row{grid-template-columns:1fr 1fr}.grid-main{grid-template-columns:1fr}.sidebar{width:205px}.main{margin-left:205px;width:calc(100% - 205px);padding-left:22px;padding-right:22px}.topbar{height:auto;padding:22px 0;align-items:flex-start}.top-actions{justify-content:flex-end}.responsive-head{flex-direction:column}}
@media(max-width:760px){.sidebar{position:static;width:100%;height:auto;flex-direction:row;align-items:center;padding:12px 14px}.app-shell{display:block}.brand{padding:0;margin-right:auto}.brand span,.sidebar-foot{display:none}.sidebar nav{flex-direction:row}.nav-item{font-size:0;padding:10px}.nav-icon{font-size:18px}.main{margin:0;width:100%;padding:0 12px 28px}.topbar{flex-direction:column}.top-actions{width:100%;justify-content:flex-start}.top-actions .select{flex:1}.hero-row{grid-template-columns:1fr 1fr}.kpi-card{padding:16px}.kpi-card strong{font-size:19px}.cat-row{grid-template-columns:80px 1fr 85px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.notice{align-items:flex-start;gap:10px}.notice>div{align-items:flex-start}.table-tools{width:100%}.table-tools>*{flex:1;min-width:100px}}

/* v3: 은행 엑셀 자동정산 + 월별 통계 */
.sidebar{overflow-y:auto}.month-side{margin:18px 0 12px;border-top:1px solid #273246;padding-top:14px;min-height:0}.side-section-title{display:flex;align-items:center;justify-content:space-between;padding:0 8px 9px;color:#cbd5e1;font-size:11px;font-weight:800}.side-section-title small{color:#64748b;font-weight:700}.sidebar-months{display:flex;flex-direction:column;gap:5px;max-height:250px;overflow:auto;padding-right:2px}.side-month{width:100%;border:0;background:transparent;color:#94a3b8;border-radius:10px;padding:9px 10px;text-align:left;cursor:pointer}.side-month:hover,.side-month.active{background:#1f2a3c;color:#fff}.side-month-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.side-month-top b{font-size:11px}.side-month-top span{font-size:10px;font-weight:800}.side-month-meta{display:flex;justify-content:space-between;margin-top:4px;font-size:9px;color:#718096}.side-month.active .side-month-meta{color:#9fb0c9}.sidebar-month-stats{margin-top:9px;padding:10px;border-radius:12px;background:#172033;border:1px solid #263247}.side-stat-title{display:flex;justify-content:space-between;color:#cbd5e1;font-size:10px;font-weight:800;margin-bottom:7px}.side-stat-row{display:flex;justify-content:space-between;gap:8px;padding:4px 0;color:#8390a4;font-size:9px}.side-stat-row b{color:#dbe4f1;font-weight:750}.side-stat-row.warn b{color:#f4c86b}.bank-import-strip{margin-bottom:14px;background:linear-gradient(135deg,#18233b,#202f55);color:#fff;border-radius:16px;padding:16px 18px;display:flex;justify-content:space-between;gap:18px;align-items:center;box-shadow:0 10px 28px rgba(28,42,78,.16)}.bank-import-copy{display:flex;gap:12px;align-items:center}.bank-import-copy b{display:block;font-size:14px}.bank-import-copy small{display:block;margin-top:5px;color:#aab7d4;font-size:10px}.import-icon{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.1);display:grid;place-items:center;font-size:22px}.monthly-toolbar{margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}.monthly-toolbar h2{margin:0;font-size:16px}.monthly-toolbar p{margin:5px 0 0;color:var(--muted);font-size:11px}.monthly-kpis{margin-bottom:14px}.wide-table{max-height:600px}.wide-table table{min-width:1300px}.wide-table tbody tr.month-row{cursor:pointer}.wide-table tbody tr.month-row:hover{background:#f3f6ff}.wide-table tfoot td{padding:12px 14px;background:#f8f9fc;border-top:1px solid #dfe4ec;font-weight:850}.import-help{display:flex;gap:6px;flex-wrap:wrap}.import-help b,.import-help span{font-size:10px;border-radius:999px;padding:6px 9px;background:#f2f5fa;color:#677386}.import-help b{background:#172033;color:#fff}.dropzone.dragover{border-color:#4f6ef7;background:#f0f3ff;box-shadow:0 0 0 4px rgba(79,110,247,.08)}.source-mini{font-size:10px;color:#7d8899;line-height:1.35}.balance-mini{font-variant-numeric:tabular-nums;color:#5c6677}.file-name strong{color:#172033}.import-result{margin-top:8px;padding:10px;border-radius:10px;background:#ecf8f2;color:#177453;font-size:11px}.year-link{border:0;background:none;color:var(--primary);font-weight:800;cursor:pointer;padding:0}.sidebar-foot{padding-bottom:2px}
@media(max-width:1100px){.sidebar-month-stats{display:none}.sidebar-months{max-height:180px}.bank-import-strip{align-items:flex-start}.bank-import-copy small{max-width:500px}}
@media(max-width:760px){.month-side{display:none}.bank-import-strip{flex-direction:column;align-items:stretch}.bank-import-strip .btn{width:100%}.monthly-toolbar{flex-direction:column;align-items:stretch;gap:12px}}


/* v4: 기업은행 기본 + 토스뱅크 보조계좌 잔액 관리 */
.account-tag{display:inline-flex;align-items:center;margin-left:5px;padding:2px 6px;border-radius:999px;background:#f0f2f6;color:#7b8494;font-size:8px;font-style:normal;font-weight:800;vertical-align:1px}.account-tag.primary-account{background:#edf1ff;color:#4f63d8}.account-setting-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:2px;padding-top:14px;border-top:1px solid #edf0f4}.account-setting-title b{font-size:12px;color:#384458}.account-setting-title small{font-size:10px;color:#929cad;font-weight:500}.field-hint{display:inline-block;margin-left:5px;color:#8e98a8;font-size:9px;font-weight:600}.balance-preview{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-radius:12px;background:#f5f7ff;border:1px solid #e2e7ff;color:#667083}.balance-preview span{font-size:11px;font-weight:700}.balance-preview strong{font-size:17px;color:#4f63d8;font-variant-numeric:tabular-nums}

/* v4: 통계 대시보드 고도화 */
.analytics-zone{margin-top:14px;display:flex;flex-direction:column;gap:14px}.analytics-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:14px}.top-grid{grid-template-columns:1fr 1fr}.donut-wrap{display:grid;grid-template-columns:230px minmax(0,1fr);align-items:center;gap:24px;min-height:230px}.donut-chart{width:210px;height:210px;border-radius:50%;position:relative;margin:auto;box-shadow:inset 0 0 0 1px rgba(25,35,55,.04)}.donut-chart:after{content:"";position:absolute;inset:39px;background:#fff;border-radius:50%;box-shadow:0 0 0 1px #edf0f4}.donut-center{position:absolute;inset:55px;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.donut-center small{font-size:10px;color:#919bac}.donut-center strong{font-size:17px;margin-top:4px;color:#222d40;letter-spacing:-.5px}.donut-legend{display:flex;flex-direction:column;gap:3px}.legend-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 0;border-bottom:1px solid #f0f2f6}.legend-row:last-child{border-bottom:0}.legend-label{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:750;color:#465268}.legend-label i{width:8px;height:8px;border-radius:3px;flex:0 0 auto}.legend-row>span:last-child{display:flex;align-items:center;gap:8px}.legend-row b{font-size:11px;color:#303b4f}.legend-row small{min-width:82px;text-align:right;font-size:10px;color:#8b95a6}.insight-stack{display:grid;grid-template-columns:1fr 1fr;gap:12px}.insight-card{min-height:176px;border:1px solid #e7ebf3;border-radius:16px;padding:18px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;background:linear-gradient(145deg,#fbfcff,#f5f7fc)}.insight-card:before{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-25px;top:-25px;background:rgba(91,111,248,.08)}.insight-card.income:before{background:rgba(45,169,125,.09)}.insight-card>span{font-size:10px;color:#8c96a8;font-weight:800;margin-bottom:auto}.insight-card b{font-size:15px;color:#263147;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.insight-card strong{font-size:20px;margin-top:8px;color:#5268ed}.insight-card.income strong{color:#24966c}.insight-card small{font-size:10px;color:#9099a8;margin-top:5px}.rank-list{display:flex;flex-direction:column}.rank-row{display:grid;grid-template-columns:28px minmax(0,1fr) 105px;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #f0f2f5}.rank-row:last-child{border-bottom:0}.rank-no{width:22px;height:22px;border-radius:7px;background:#f1f3f6;color:#7a8495;display:grid;place-items:center;font-size:9px;font-weight:900}.rank-no.podium{background:#edf1ff;color:#5369ea}.rank-main{min-width:0}.rank-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}.rank-title b{font-size:11px;color:#3d485b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-title small{font-size:9px;color:#a0a8b5;flex:0 0 auto}.rank-track{height:5px;background:#f0f2f6;border-radius:99px;overflow:hidden}.rank-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#7a67f7,#5b70f8)}.rank-fill.income{background:linear-gradient(90deg,#4ab98f,#2d9e77)}.rank-amount{text-align:right;font-size:11px;font-variant-numeric:tabular-nums;color:#394559}.empty-rank{padding:28px 8px;text-align:center;color:#a0a8b6;font-size:11px}.trend-panel{overflow:hidden}.trend-legend{display:flex;align-items:center;gap:12px;font-size:10px;color:#7d8797}.trend-legend span{display:flex;align-items:center;gap:5px}.trend-legend i{width:8px;height:8px;border-radius:3px}.income-dot{background:#34a780}.expense-dot{background:#6678ed}.monthly-trend{height:230px;display:grid;grid-template-columns:repeat(12,1fr);align-items:end;gap:7px;padding:14px 4px 0;border-top:1px solid #f1f3f6;background:linear-gradient(to top,rgba(244,246,250,.9),rgba(255,255,255,0))}.trend-month{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:7px;border-radius:8px;padding:6px 2px}.trend-month.active{background:#f2f4ff}.trend-bars{height:180px;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px}.trend-bar{width:min(14px,38%);border-radius:5px 5px 2px 2px;min-height:0}.trend-bar.income{background:#34a780}.trend-bar.expense{background:#6678ed}.trend-month span{font-size:9px;color:#8993a3;font-weight:700}.trend-month.active span{color:#5166e5}.analytics-zone+.table-panel{margin-top:14px}
@media(max-width:1100px){.analytics-grid,.top-grid{grid-template-columns:1fr}.donut-wrap{grid-template-columns:220px 1fr}.insight-stack{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.donut-wrap{grid-template-columns:1fr}.donut-chart{width:190px;height:190px}.donut-center{inset:52px}.insight-stack{grid-template-columns:1fr}.monthly-trend{overflow-x:auto;grid-template-columns:repeat(12,minmax(42px,1fr));padding-bottom:4px}.rank-row{grid-template-columns:26px minmax(0,1fr) 88px}.rank-amount{font-size:10px}}


/* v6: 클라우드 동기화 */
.cloud-status-btn{display:inline-flex;align-items:center;gap:7px}.cloud-dot{width:8px;height:8px;border-radius:50%;background:#a8b0bd;box-shadow:0 0 0 4px rgba(168,176,189,.12)}.cloud-status-btn.online{border-color:#bfe8d7;background:#f4fbf8;color:#1d8c67}.cloud-status-btn.online .cloud-dot{background:#29b67e;box-shadow:0 0 0 4px rgba(41,182,126,.12)}.cloud-status-btn.syncing{border-color:#cdd5ff;background:#f5f7ff;color:#5267e8}.cloud-status-btn.syncing .cloud-dot{background:#6278f3;animation:cloudPulse 1.1s infinite}.cloud-status-btn.error{border-color:#f0cccc;background:#fff7f7;color:#b25252}.cloud-status-btn.error .cloud-dot{background:#d46a6a;box-shadow:0 0 0 4px rgba(212,106,106,.12)}@keyframes cloudPulse{0%,100%{box-shadow:0 0 0 3px rgba(98,120,243,.11)}50%{box-shadow:0 0 0 7px rgba(98,120,243,.04)}}
.cloud-modal{width:min(680px,calc(100vw - 28px))}.cloud-state-card{display:flex;gap:12px;align-items:center;padding:13px 14px;border-radius:13px;border:1px solid #e5e9f0;background:#f8fafc}.cloud-state-dot{width:10px;height:10px;border-radius:50%;background:#9ca6b5;flex:0 0 auto}.cloud-state-card b{display:block;font-size:12px;color:#344057}.cloud-state-card small{display:block;margin-top:3px;font-size:10px;color:#8792a4;font-weight:500}.cloud-state-card.online{background:#f2fbf7;border-color:#cdebdc}.cloud-state-card.online .cloud-state-dot{background:#2eb27e}.cloud-state-card.syncing{background:#f4f6ff;border-color:#d7ddff}.cloud-state-card.syncing .cloud-state-dot{background:#6478ee;animation:cloudPulse 1.1s infinite}.cloud-state-card.error{background:#fff7f7;border-color:#f1d4d4}.cloud-state-card.error .cloud-state-dot{background:#cf6666}.cloud-section{display:flex;flex-direction:column;gap:11px;padding:15px 0;border-top:1px solid #eef1f5}.cloud-section:first-of-type{border-top:0;padding-top:2px}.cloud-section-head b{display:block;font-size:12px;color:#39455a}.cloud-section-head small{display:block;margin-top:4px;font-size:10px;line-height:1.5;color:#8b95a6;font-weight:500}.cloud-actions{display:flex;gap:8px;align-items:center}.cloud-actions.wrap{flex-wrap:wrap}.cloud-account-info{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:10px;background:#f3f8ff;border:1px solid #dfe8fa}.cloud-account-info b{font-size:11px;color:#33415a}.cloud-account-info span{font-size:9px;color:#7c899c;text-align:right}.cloud-security-note{display:flex;gap:10px;padding:12px 13px;border-radius:11px;background:#fffaf0;border:1px solid #f0e2bd}.cloud-security-note b{font-size:10px;color:#8c6923;flex:0 0 auto}.cloud-security-note span{font-size:10px;line-height:1.5;color:#886f3f}.cloud-foot-note{font-size:9px;color:#929bac;align-self:center}
@media(max-width:760px){.cloud-modal .form-grid{grid-template-columns:1fr}.cloud-actions>*{flex:1}.cloud-account-info{align-items:flex-start;flex-direction:column}.cloud-account-info span{text-align:left}.cloud-status-btn{order:-1}.top-actions .cloud-status-btn{flex:0 0 auto}}

.stat-excluded{display:inline-block;margin-top:3px;font-size:11px;font-weight:700;color:#9a6700;background:#fff3cd;border:1px solid #ffe08a;border-radius:999px;padding:2px 7px}

/* v9: 6자리 PIN 접근 잠금 */
body.access-locked{overflow:hidden;background:#f3f5fa}.access-gate{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0,#eef1ff 0,#f5f7fb 36%,#eef1f6 100%);transition:opacity .22s ease,visibility .22s ease}.access-gate.unlocked{opacity:0;visibility:hidden;pointer-events:none}.access-card{width:min(390px,calc(100vw - 32px));padding:32px 30px 28px;border:1px solid #e0e5ee;border-radius:24px;background:rgba(255,255,255,.96);box-shadow:0 24px 70px rgba(36,47,72,.14);text-align:center}.access-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:28px}.access-brand-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#687cf3,#4e62df);font-weight:900;font-size:18px;box-shadow:0 8px 20px rgba(82,103,232,.22)}.access-brand>div:last-child{text-align:left}.access-brand strong{display:block;color:#29344a;font-size:15px;line-height:1.15}.access-brand span{display:block;color:#9aa4b5;font-size:8px;letter-spacing:1.45px;margin-top:3px;font-weight:800}.access-copy h1{margin:0;color:#263147;font-size:22px;letter-spacing:-.5px}.access-copy p{margin:8px 0 0;color:#8792a4;font-size:11px;line-height:1.6}.access-dots{display:flex;justify-content:center;gap:13px;margin:27px 0 14px}.access-dots span{width:13px;height:13px;border-radius:50%;background:#e4e8ef;box-shadow:inset 0 0 0 1px #d9dee7;transition:transform .12s ease,background .12s ease,box-shadow .12s ease}.access-dots span.filled{background:#5d71ec;box-shadow:0 0 0 4px rgba(93,113,236,.09);transform:scale(1.06)}.access-dots span.error{background:#d96b6b;box-shadow:0 0 0 4px rgba(217,107,107,.08)}.access-message{height:20px;color:#8a94a5;font-size:10px;font-weight:700}.access-message.error{color:#bd5757}.access-keypad{display:grid;grid-template-columns:repeat(3,68px);gap:11px;justify-content:center;margin:15px auto 21px}.access-keypad button{width:68px;height:56px;border:1px solid #e1e5ec;border-radius:16px;background:#fff;color:#303b51;font-size:19px;font-weight:800;cursor:pointer;box-shadow:0 4px 12px rgba(38,49,71,.045);transition:transform .08s ease,background .12s ease,border-color .12s ease}.access-keypad button:hover:not(:disabled){background:#f5f7ff;border-color:#ccd4f5}.access-keypad button:active:not(:disabled){transform:scale(.96)}.access-keypad button:disabled{cursor:not-allowed;opacity:.38}.access-keypad .pin-empty{visibility:hidden;pointer-events:none}.access-keypad .pin-backspace{font-size:17px;color:#7d8797}.access-foot{padding-top:15px;border-top:1px solid #eef1f5;color:#a1a9b6;font-size:9px;line-height:1.5}.access-card.shake{animation:accessShake .4s ease}@keyframes accessShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(7px)}60%{transform:translateX(-5px)}80%{transform:translateX(3px)}}body.access-locked .app-shell{visibility:hidden;pointer-events:none;user-select:none}@media(max-width:520px){.access-card{padding:28px 20px 24px;border-radius:21px}.access-keypad{grid-template-columns:repeat(3,64px);gap:10px}.access-keypad button{width:64px;height:54px}}
