:root{font-family:Inter,SF Pro Display,SF Pro Text,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#26212c;background:#fff9ef;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--surface: rgba(255, 255, 255, .86);--surface-soft: #fff7de;--line: #ead7b8;--muted: #7a684f;--primary: #f59e0b;--primary-strong: #7a4200;--accent: #ffcf57;--danger: #be123c;--success: #3f6212;--ink: #2f2737;--paper-line: rgba(140, 109, 66, .08);--shadow: 0 22px 55px rgba(143, 98, 13, .12)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;color:var(--ink);background:radial-gradient(circle at top left,rgba(255,215,104,.5),transparent 28%),radial-gradient(circle at top right,rgba(133,214,255,.32),transparent 32%),linear-gradient(180deg,#fff8ed,#fff3df 55%,#fdebc7)}button,input,select{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1{font-size:clamp(2rem,4vw,3.6rem);line-height:1.05;letter-spacing:0}h2{font-size:1.35rem;line-height:1.2}h3{font-size:1.08rem;line-height:1.25}input,select{width:100%;min-height:42px;border:1px solid var(--line);border-radius:16px;background:#ffffffeb;color:var(--ink);padding:0 12px;outline:none}input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #f9731629}code{overflow-wrap:anywhere}.button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:999px;font-weight:760;letter-spacing:0;transition:transform .14s ease,background .14s ease,border-color .14s ease}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.62}.button-md{padding:10px 16px}.button-sm{min-height:34px;padding:7px 10px;font-size:.86rem}.button-primary{background:linear-gradient(180deg,#fff8b5,#ffd65a);color:#7a4200;box-shadow:inset 0 1px #ffffffb3,0 10px 20px #fab50040}.button-secondary{background:#ffffffd9;color:var(--primary-strong);border-color:#ffffffe6;box-shadow:0 10px 24px #7949121f}.button-ghost{background:transparent;color:#8b5c13;border-color:var(--line)}.button-danger{background:#fff1f3;color:#9f1239;border-color:#fecdd3}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.field{display:grid;gap:7px;color:#5d4522;font-size:.9rem;font-weight:720}.field small{color:var(--muted);font-weight:520}.checkbox-field{display:inline-flex;align-items:center;gap:9px;min-height:42px;color:#334155;font-weight:680}.checkbox-field input{width:18px;min-height:18px;accent-color:var(--primary)}.message{display:flex;align-items:center;gap:10px;border:1px solid #d9f99d;border-radius:26px;background:#ecfccbc7;color:#3f6212;padding:12px 14px;font-weight:680}.message-error{border-color:#fecdd3;background:#ffe4e6d1;color:#9f1239}.empty-state{border:2px dashed rgba(107,76,34,.18);border-radius:26px;background:#fffaf0;color:#6f5a37;padding:22px}.empty-state strong{color:#2f2737}.empty-state p{margin-top:6px}.panel{border:1px solid rgba(255,255,255,.65);border-radius:34px;background:linear-gradient(135deg,#ffffffe6,#fff7e6eb),repeating-linear-gradient(180deg,transparent,transparent 31px,var(--paper-line) 31px,var(--paper-line) 32px);box-shadow:var(--shadow),inset 0 1px #ffffffbf;padding:22px}.panel h2{margin-bottom:16px}.full-width{width:100%}.points-badge{display:inline-flex;min-width:64px;align-items:center;justify-content:center;border-radius:999px;padding:7px 12px;font-weight:850}.points-positive{background:#e5f8ef;color:#166348}.points-negative{background:#ffe7ea;color:#9f1239}.danger-text{color:var(--danger)!important}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,rgba(16,111,107,.14),transparent 42%),linear-gradient(315deg,rgba(245,183,0,.22),transparent 48%),#f7fafc}.login-panel{width:min(420px,100%);border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);padding:30px}.login-panel h1{margin:16px 0 24px;font-size:2.3rem}.brand-mark{display:grid;width:42px;height:42px;place-items:center;border-radius:10px;background:#f5b700;color:#422006;font-weight:900}.brand-mark.large{width:58px;height:58px;font-size:1.5rem}.stack-form{display:grid;gap:16px}.admin-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr);background:#f3f6fb}.admin-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:22px;border-right:1px solid var(--line);background:#fff;padding:22px}.brand-block{display:flex;align-items:center;gap:12px}.brand-block div:last-child{min-width:0}.brand-block strong,.brand-block span{display:block}.brand-block span{overflow:hidden;color:var(--muted);font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.admin-nav{display:grid;gap:6px}.admin-nav button{min-height:42px;border:0;border-radius:8px;background:transparent;color:#475569;padding:0 12px;text-align:left;font-weight:750}.admin-nav button.active{background:#e8f6f4;color:var(--primary-strong)}.sidebar-actions{display:grid;gap:10px;margin-top:auto}.admin-content{display:grid;align-content:start;gap:16px;max-width:1180px;width:100%;padding:28px}.view-stack{display:grid;gap:18px}.view-header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:10px 0 4px}.view-header h1{font-size:clamp(2rem,4vw,3.1rem)}.view-header p{margin-top:8px;color:var(--muted);line-height:1.6}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric-card{border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px;box-shadow:var(--shadow)}.metric-card span{color:var(--muted);font-size:.9rem;font-weight:680}.metric-card strong{display:block;margin-top:10px;color:#111827;font-size:2rem}.child-balance-list,.record-list{display:grid;gap:10px}.child-balance-row,.record-row{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #edf2f7;border-radius:8px;background:#fbfdff;padding:14px}.record-row p{margin-top:4px;color:#475569}.record-row small{display:block;margin-top:5px;color:#64748b}.record-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.rule-form,.settings-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.rule-form .field:nth-child(2),.rule-form .field:nth-child(8),.settings-form .field:first-child,.settings-form .field:last-of-type{grid-column:span 2}.form-actions{display:flex;align-items:end;gap:10px}.rule-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.rule-admin-card{display:grid;grid-template-columns:74px minmax(0,1fr);gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px}.muted-card{opacity:.62}.rule-thumb{display:grid;aspect-ratio:1;place-items:center;overflow:hidden;border-radius:8px;background:#e8f6f4;color:var(--primary)}.rule-thumb img{width:100%;height:100%;object-fit:cover}.rule-admin-card p,.rule-admin-card small{display:block;margin-top:4px;color:var(--muted)}.card-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px}.inline-form{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(130px,.5fr) minmax(220px,1fr) auto;gap:10px;align-items:center}.panel-heading-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.filter-row{display:flex;gap:10px}.filter-row select{width:150px}.copy-row,.split-input{display:flex;align-items:center;gap:10px}.copy-row code{flex:1;border:1px solid var(--line);border-radius:8px;background:#f8fafc;padding:12px}.split-input input{flex:1}.two-column-form{display:grid;grid-column:span 2;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.kid-shell{min-height:100vh;padding:clamp(20px,3vw,32px) clamp(16px,3vw,24px)}.kid-page-grid{display:grid;width:min(1280px,100%);min-width:0;margin:0 auto;grid-template-columns:minmax(280px,.92fr) minmax(0,1.08fr);gap:24px}.kid-page-grid-single{grid-template-columns:minmax(280px,.92fr) minmax(0,1.08fr)}.kid-left-stack,.kid-actions-stack{display:grid;min-width:0;align-content:start;gap:24px}.kid-balance-panel{min-width:0;overflow:hidden;border:1px solid rgba(255,255,255,.65);border-radius:38px;background:radial-gradient(circle at 10% 20%,rgba(255,255,255,.5) 0 4px,transparent 4px),radial-gradient(circle at 75% 25%,rgba(255,255,255,.45) 0 4px,transparent 4px),radial-gradient(circle at 30% 70%,rgba(255,255,255,.36) 0 5px,transparent 5px),radial-gradient(circle at 82% 80%,rgba(255,255,255,.4) 0 6px,transparent 6px),linear-gradient(135deg,#fef3c7,#fde68a 52%,#fb7185);box-shadow:0 22px 48px #7949122e;padding:clamp(24px,4vw,32px)}.kid-greeting{display:flex;min-width:0;align-items:flex-start;justify-content:space-between;gap:18px}.kid-greeting>div{min-width:0}.kid-greeting .button{flex:0 0 144px;min-width:144px;white-space:nowrap}.kid-greeting h1,.kid-section-heading h2,.kid-rule-card h3,.kid-manual-card h3{font-family:inherit;color:#2f2737;font-weight:760}.kid-greeting h1{color:#442806;font-size:clamp(2rem,4vw,2.55rem)}.kid-greeting p{margin-top:8px;color:#5d4522;font-size:1rem;line-height:1.65;overflow-wrap:anywhere}.balance-display{display:grid;width:min(330px,100%);margin-top:24px;border-radius:30px;background:#ffffffbf;padding:20px}.balance-display span{color:#6f5a37;font-size:.9rem;font-weight:760}.balance-display strong{margin-top:8px;color:#2f2737;font-size:clamp(4rem,14vw,6rem);font-weight:850;line-height:.95}.kid-section-heading{margin-bottom:20px}.kid-section-heading h2,.rule-section h2,.kid-history h2,.dice-panel h2{color:#2f2737;font-size:clamp(1.8rem,3vw,2rem);line-height:1.1}.kid-section-heading p{margin-top:8px;color:#6f5a37;font-size:.92rem;line-height:1.6}.kid-history .record-list{gap:12px}.kid-history .record-row{border-color:#f3dfbe;border-radius:26px;background:#ffffffc7}.kid-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.kid-rule-card,.kid-manual-card{display:grid;min-width:0;gap:16px;align-content:start;min-height:300px;overflow:hidden;border:1px solid rgba(255,255,255,.9);border-radius:34px;padding:18px;box-shadow:0 20px 36px #70440c1f;transition:transform .16s ease,box-shadow .16s ease}.kid-rule-card:hover{transform:translateY(-4px)}.kid-rule-card p,.kid-manual-card p{color:#2f2737b8;font-size:.92rem;line-height:1.55}.rule-color-sunrise{color:#5b3000;background:radial-gradient(circle at 10% 20%,rgba(255,255,255,.5) 0 4px,transparent 4px),radial-gradient(circle at 75% 25%,rgba(255,255,255,.45) 0 4px,transparent 4px),radial-gradient(circle at 30% 70%,rgba(255,255,255,.36) 0 5px,transparent 5px),linear-gradient(135deg,#ffd166,#ffb703,#fb8500);border-color:#f7a600}.rule-color-mint{color:#124b27;background:radial-gradient(circle at 10% 20%,rgba(255,255,255,.5) 0 4px,transparent 4px),radial-gradient(circle at 75% 25%,rgba(255,255,255,.45) 0 4px,transparent 4px),linear-gradient(135deg,#d9f99d,#86efac,#22c55e);border-color:#46c370}.rule-color-berry{color:#5e1022;background:radial-gradient(circle at 10% 20%,rgba(255,255,255,.5) 0 4px,transparent 4px),radial-gradient(circle at 75% 25%,rgba(255,255,255,.45) 0 4px,transparent 4px),linear-gradient(135deg,#fecdd3,#fb7185,#e11d48);border-color:#f25573}.rule-color-sea{color:#0f295b;background:radial-gradient(circle at 10% 20%,rgba(255,255,255,.5) 0 4px,transparent 4px),radial-gradient(circle at 75% 25%,rgba(255,255,255,.45) 0 4px,transparent 4px),linear-gradient(135deg,#bae6fd,#60a5fa,#2563eb);border-color:#4c87f5}.rule-color-lavender{color:#4b1d73;background:radial-gradient(circle at 10% 20%,rgba(255,255,255,.5) 0 4px,transparent 4px),radial-gradient(circle at 75% 25%,rgba(255,255,255,.45) 0 4px,transparent 4px),linear-gradient(135deg,#f5d0fe,#d8b4fe,#a855f7);border-color:#c084fc}.rule-color-peach{color:#672718;background:radial-gradient(circle at 10% 20%,rgba(255,255,255,.5) 0 4px,transparent 4px),radial-gradient(circle at 75% 25%,rgba(255,255,255,.45) 0 4px,transparent 4px),linear-gradient(135deg,#ffe4d6,#fdba74,#fb7185);border-color:#f59e7b}.rule-image-frame{display:grid;aspect-ratio:1;place-items:center;overflow:hidden;border-radius:28px;background:#ffffff40;color:currentColor}.rule-image-frame img{width:100%;height:100%;object-fit:cover}.fallback-icon{width:46%;height:46%}.rule-submit-button{width:fit-content;min-width:128px;justify-self:start;background:linear-gradient(180deg,#fff8b5,#ffd65a);color:#7a4200;font-size:1rem;font-weight:900}.kid-manual-card .rule-submit-button{width:100%;justify-self:stretch}.kid-manual-card{border-color:#ffffffa6;background:linear-gradient(135deg,#ffffffe6,#fff7e6eb),repeating-linear-gradient(180deg,transparent,transparent 31px,var(--paper-line) 31px,var(--paper-line) 32px);box-shadow:0 22px 55px #8f620d1f,inset 0 1px #ffffffbf}.kid-manual-card form{display:grid;gap:16px}.stepper{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:10px;align-items:center;border-radius:28px;background:#fff7de;padding:12px}.stepper button{display:grid;min-height:44px;place-items:center;border:0;border-radius:999px;background:#fff;color:#7a4200;box-shadow:0 8px 18px #79491224}.stepper input{border-color:#e5d0a7;text-align:center;font-size:1.35rem;font-weight:850}.dice-panel{display:grid;justify-items:center;gap:16px}.dice-face{display:grid;width:124px;aspect-ratio:1;place-items:center;border-radius:30px;background:#101827;color:#f7c948;font-size:4.4rem;font-weight:900;line-height:1}@media(max-width:980px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:static;height:auto}.admin-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.sidebar-actions,.metric-grid,.rule-form,.settings-form{grid-template-columns:repeat(2,minmax(0,1fr))}.kid-page-grid,.kid-page-grid-single{width:calc(100vw - 48px);max-width:calc(100vw - 48px);grid-template-columns:1fr}}@media(max-width:680px){.admin-content,.kid-shell{padding:14px;overflow-x:hidden}.view-header,.kid-greeting,.child-balance-row,.record-row,.panel-heading-row,.copy-row,.split-input{align-items:stretch;flex-direction:column}.metric-grid,.rule-form,.settings-form,.rule-form .field:nth-child(2),.rule-form .field:nth-child(8),.settings-form .field:first-child,.settings-form .field:last-of-type,.two-column-form,.inline-form,.kid-rule-grid{grid-column:auto;grid-template-columns:1fr}.admin-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-row,.record-actions,.form-actions,.card-actions{justify-content:stretch}.filter-row,.filter-row select,.record-actions .button,.record-actions .points-badge,.form-actions .button,.card-actions .button{width:100%}.kid-rule-card,.kid-manual-card{min-height:auto}.kid-balance-panel{padding:22px}.kid-page-grid,.kid-page-grid-single{width:calc(100vw - 48px);max-width:calc(100vw - 48px)}.kid-greeting .button{align-self:flex-start;flex:none;min-width:144px;width:144px}.balance-display,.rule-submit-button{width:100%}}
