:root{--bg: var(--tg-theme-bg-color, #ffffff);--secondary-bg: var(--tg-theme-secondary-bg-color, #f2f2f7);--text: var(--tg-theme-text-color, #1c1c1e);--hint: var(--tg-theme-hint-color, #8e8e93);--link: var(--tg-theme-link-color, #007aff);--accent: var(--tg-theme-button-color, #2f7be0);--accent-text: var(--tg-theme-button-text-color, #ffffff);--border: color-mix(in srgb, var(--hint) 28%, transparent);--danger: #e0483a;--ok: #2f9e44;--radius: 12px;--pad: 14px;--tabbar: calc(54px + env(safe-area-inset-bottom)) }*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--secondary-bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,Malgun Gothic,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45;-webkit-text-size-adjust:100%}.app{min-height:100%;display:flex;flex-direction:column}.content{flex:1;padding:var(--pad);padding-bottom:calc(var(--tabbar) + 76px);max-width:900px;width:100%;margin:0 auto}.topbar{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--border);padding:10px var(--pad)}.topbar h1{margin:0;font-size:16px;font-weight:700}.topbar .sub{color:var(--hint);font-size:12.5px;margin-top:2px}.card{background:var(--bg);border-radius:var(--radius);padding:var(--pad);margin-bottom:12px}.card>h2{margin:0 0 4px;font-size:14px;font-weight:700;letter-spacing:-.01em}.card>.desc{color:var(--hint);font-size:12.5px;margin:0 0 12px}.section-title{font-size:12px;font-weight:700;color:var(--hint);text-transform:none;margin:18px 4px 8px;letter-spacing:.02em}label{display:block;font-size:13px;font-weight:600;margin-bottom:5px}input,select,textarea,button{font-family:inherit;font-size:15px;color:var(--text)}input[type=text],input[type=number],input[type=date],input[type=time],input[type=datetime-local],select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--secondary-bg);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{min-height:84px;resize:vertical;line-height:1.5}.field{margin-bottom:12px}.field:last-child{margin-bottom:0}.row{display:flex;gap:8px}.row>*{flex:1;min-width:0}.hint{color:var(--hint);font-size:12px;margin-top:4px}.error{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);border-radius:10px;padding:10px 12px;font-size:13.5px;margin-bottom:12px}.notice{background:color-mix(in srgb,var(--accent) 12%,transparent);border-radius:10px;padding:10px 12px;font-size:13.5px;margin-bottom:12px}button{cursor:pointer;border:none;border-radius:10px;padding:11px 16px;font-weight:600;background:var(--accent);color:var(--accent-text)}button:disabled{opacity:.45;cursor:default}button.ghost{background:var(--secondary-bg);color:var(--text);border:1px solid var(--border)}button.link{background:none;color:var(--link);padding:4px 6px;font-weight:600}button.danger{background:var(--danger);color:#fff}button.small{padding:7px 11px;font-size:13px}.savebar{position:fixed;left:0;right:0;bottom:var(--tabbar);padding:10px var(--pad);background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);z-index:30}.app.no-tabs .savebar{bottom:0;padding-bottom:calc(10px + env(safe-area-inset-bottom))}.app.no-tabs .content{padding-bottom:96px}.savebar .inner{max-width:900px;margin:0 auto;display:flex;align-items:center;gap:12px}.savebar button{flex:1}.savebar .total{font-size:13px;color:var(--hint);white-space:nowrap}.savebar .total b{color:var(--text);font-size:16px}.slot{padding:11px 0;border-bottom:1px solid var(--border)}.slot:last-child{border-bottom:none}.slot-head{display:flex;align-items:center;gap:10px}.slot-label{flex:1;font-size:14px;min-width:0}.slot-label .meta{color:var(--hint);font-size:11.5px;display:block}.slot-count{width:84px;flex:none;text-align:right}.slot-count input{text-align:right;padding:8px 10px}.slot .names{margin-top:9px}.slot .names-info{display:flex;justify-content:space-between;font-size:12px;color:var(--hint);margin-top:4px}.custom-card{border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:10px;background:var(--secondary-bg)}.custom-card .head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-weight:700;font-size:13px}.add-row{display:flex;gap:8px;align-items:center;margin-top:10px}.add-row select{flex:1}.add-row button{flex:none}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;background:var(--bg);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.tabs button{flex:1;background:none;color:var(--hint);border-radius:0;padding:9px 4px 10px;font-size:11px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:3px}.tabs button.on{color:var(--accent)}.tabs .ico{font-size:18px;line-height:1}.subtabs{display:flex;gap:6px;overflow-x:auto;margin:0 0 12px;padding-bottom:2px;scrollbar-width:none}.subtabs::-webkit-scrollbar{display:none}.subtabs button{background:var(--bg);color:var(--hint);border:1px solid var(--border);padding:7px 13px;font-size:13px;white-space:nowrap;border-radius:999px}.subtabs button.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:10px;border:1px solid var(--border);background:var(--bg)}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:7px 9px;text-align:right;white-space:nowrap}th:first-child,td:first-child,th.left,td.left{text-align:left}thead th{position:sticky;top:0;background:var(--secondary-bg);font-size:12px;font-weight:700;border-bottom:1px solid var(--border)}tbody tr{border-bottom:1px solid var(--border)}tbody tr:last-child{border-bottom:none}tr.group-head td{background:var(--secondary-bg);font-weight:700;font-size:12px;text-align:left;color:var(--hint)}tr.sum td{font-weight:700;background:color-mix(in srgb,var(--accent) 7%,transparent)}tr.grand td{font-weight:800;background:color-mix(in srgb,var(--accent) 15%,transparent)}td.zero{color:color-mix(in srgb,var(--hint) 60%,transparent)}.list-item{display:flex;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--border)}.list-item:last-child{border-bottom:none}.list-item .grow{flex:1;min-width:0}.list-item .name{font-weight:600;font-size:14px}.list-item .meta{color:var(--hint);font-size:12px}.list-item .actions{display:flex;gap:6px;flex:none}.badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--secondary-bg);color:var(--hint)}.badge.ok{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.badge.warn{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger)}.badge.info{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.empty{text-align:center;color:var(--hint);padding:32px 12px;font-size:13.5px}.center{text-align:center}.stack{display:flex;flex-direction:column;gap:8px}.spread{display:flex;justify-content:space-between;align-items:center;gap:10px}.names-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.names-chips span{background:var(--secondary-bg);border-radius:6px;padding:2px 7px;font-size:12px}.loading{padding:48px;text-align:center;color:var(--hint)}
