:root{--text:#46505f;--text-h:#101828;--text-muted:#79808d;--bg:#f4f6fa;--surface:#fff;--border:#e2e6ee;--primary:#3d5afe;--primary-hover:#2f49d8;--danger:#d92d20;--danger-hover:#b42318;--purchased:#2c9e44;--purchased-hover:#248038;--purchased-bg:#eaf7ee;--shadow:#10182814 0 4px 12px;--sans:system-ui, "Segoe UI", "Malgun Gothic", Roboto, sans-serif;font:15px/1.5 var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-height:100vh;margin:0}h1,h2{color:var(--text-h);margin:0}.button{font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:6px;padding:8px 16px;font-weight:500;transition:background-color .15s,border-color .15s}.button:disabled{opacity:.5;cursor:not-allowed}.button-primary{background:var(--primary);color:#fff}.button-primary:hover:not(:disabled){background:var(--primary-hover)}.button-ghost{background:var(--surface);border-color:var(--border);color:var(--text)}.button-ghost:hover:not(:disabled){background:var(--bg)}.button-purchased{background:var(--purchased);color:#fff}.button-purchased:hover:not(:disabled){background:var(--purchased-hover)}.button-block{width:100%}.field{margin-bottom:16px;display:block}.field-label{color:var(--text-h);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.input{border:1px solid var(--border);width:100%;font:inherit;color:var(--text-h);background:var(--surface);border-radius:6px;padding:9px 12px}.input:focus{outline:2px solid var(--primary);outline-offset:-1px}.input:disabled{background:var(--bg);color:var(--text-muted)}.field-error{color:var(--danger);margin-top:6px;font-size:13px;display:block}.field-success{color:#067647;margin-top:6px;font-size:13px;display:block}.required{color:var(--danger)}.field-inline{gap:8px;display:flex}.field-inline .input{flex:1;min-width:0}.form-footer{color:var(--text-muted);text-align:center;margin:16px 0 0;font-size:14px}.form-footer a{color:var(--primary);font-weight:500;text-decoration:none}.form-footer a:hover{text-decoration:underline}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{border:1px solid var(--border);background:var(--surface);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:12px;padding:32px}.login-title{text-align:center;font-size:24px}.login-subtitle{color:var(--text-muted);text-align:center;margin:8px 0 24px;font-size:14px}.layout{flex-direction:column;min-height:100vh;display:flex}.layout-header{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;height:56px;padding:0 24px;display:flex}.layout-header-left{align-items:center;gap:24px;min-width:0;display:flex}.layout-logo{color:var(--text-h);white-space:nowrap;font-size:17px;font-weight:700}.layout-user{align-items:center;gap:12px;display:flex}.layout-user-name{color:var(--text-muted);font-size:14px}.layout-main{flex:1;min-width:0;padding:24px}.page{max-width:720px;margin:0 auto}.page-head{margin-bottom:20px}.page-head-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.page-head-actions{flex-wrap:wrap;gap:8px;display:flex}.button-test{color:var(--text-muted,#79808d);border-style:dashed}.page-title{margin:0;font-size:22px}.page-desc{color:var(--text-muted,#79808d);margin:6px 0 0;font-size:14px}.card{border:1px solid var(--border,#e2e6ee);background:var(--surface,#fff);border-radius:12px;margin-bottom:16px;padding:18px 20px}.card-actions{justify-content:flex-end;margin-top:14px;display:flex}.empty{color:var(--text-muted,#79808d);text-align:center;padding:32px 16px}.round-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.helper-hint{border:1px dashed var(--border,#e2e6ee);color:var(--text-muted,#79808d);border-radius:8px;margin:0 0 16px;padding:10px 12px;font-size:13px;line-height:1.6}.round-actions{align-items:center;gap:8px;display:flex}.button-copy{padding:4px 10px;font-size:12px}.round-title{margin:0;font-size:17px}.round-period{color:var(--text-muted,#79808d);margin:4px 0 0;font-size:13px}.round-empty{justify-content:center;align-items:center;min-height:200px;display:flex}.winning-row{background:var(--bg,#f4f6fa);border-radius:8px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;display:flex}.winning-label{color:var(--text-muted,#79808d);white-space:nowrap;font-size:12px}.winning-plus{color:var(--text-muted,#79808d)}.ball{background:var(--text-muted);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:27px;height:27px;font-size:12px;font-weight:600;display:inline-flex}.ball-range1{background:#e08f00}.ball-range2{background:#0063cc}.ball-range3{background:#d8314f}.ball-range4{background:#6e7382}.ball-range5{background:#2c9e44}.ball-list{gap:5px;display:inline-flex}.ball-bonus{box-shadow:0 0 0 2px var(--surface), 0 0 0 3px currentColor}.badge{white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:500;display:inline-block}.badge-muted{background:var(--bg);border:1px solid var(--border);color:var(--text-muted)}.purchase-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.purchase-hint{color:var(--text-muted,#79808d);font-size:13px}.badge-purchased{background:var(--purchased-bg);border:1px solid var(--purchased);color:var(--purchased)}.badge-rank{color:#fff;border:1px solid #0000}.badge-rank1{background:#d8314f}.badge-rank2{background:#e08f00}.badge-rank3{background:#2c9e44}.badge-rank4{background:#0063cc}.badge-rank5{background:var(--surface);border-color:var(--primary);color:var(--primary)}.ticket-lines{margin:0;padding:0;list-style:none}.ticket-line{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.ticket-line-label{width:92px;color:var(--text);white-space:nowrap;flex-shrink:0;font-size:13px}.ticket-line-result{color:var(--text-muted)}.ticket-numbers{flex:1;grid-template-columns:repeat(6,1fr);gap:2px;display:grid}.ticket-number{width:28px;height:28px;color:var(--text-h);justify-content:center;align-items:center;margin:0 auto;font-size:14px;font-weight:600;display:inline-flex}.ticket-number-hit{color:#fff;border-radius:50%}.pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:20px;display:flex}.page-number{border:1px solid var(--border);background:var(--surface);min-width:32px;font:inherit;color:var(--text);cursor:pointer;border-radius:6px;padding:6px 8px;font-size:13px}.page-number-active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.form-error{color:#b42318;background:#fef3f2;border:1px solid #fecdc9;border-radius:8px;margin:0 0 16px;padding:10px 12px;font-size:14px}.form-success{color:#17663a;background:#eefaf1;border:1px solid #a7e0b8;border-radius:8px;margin:0 0 16px;padding:10px 12px;font-size:14px}.summary-card{flex-direction:column;gap:14px;display:flex}.summary-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.summary-title{color:var(--text-h);margin:0;font-size:16px}.summary-desc{color:var(--text-muted);margin:0;font-size:13px}.summary-total{align-items:baseline;gap:4px;display:flex}.summary-total-value{color:var(--text-h);font-size:30px;font-weight:700;line-height:1.1}.summary-total-unit{color:var(--text-muted);font-size:14px}.summary-ranks{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.summary-rank{border:1px solid var(--border);background:var(--bg);border-radius:8px;align-items:center;gap:6px;padding:6px 10px;display:flex}.summary-rank-zero{opacity:.45}.summary-rank-count{color:var(--text);font-size:13px;font-weight:600}@media (width<=640px){.layout-header{flex-wrap:wrap;gap:8px;height:auto;padding:10px 14px}.layout-header-left,.layout-user{justify-content:space-between;width:100%}.layout-user-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.layout-main{padding:16px 12px}.page-title{font-size:19px}.page-head-row{flex-direction:column;align-items:stretch}.page-head-row .button{width:100%}.page-head-actions{flex-direction:column}.card{padding:14px}.winning-row{flex-direction:column;align-items:flex-start;gap:8px;padding:10px}.ball{width:25px;height:25px;font-size:11px}.ticket-line{gap:8px}.ticket-line-label{width:82px;font-size:12px}.ticket-number{width:24px;height:24px;font-size:13px}.summary-total-value{font-size:26px}.summary-ranks{gap:6px}.summary-rank{padding:5px 8px}.login-card{padding:24px 20px}.login-page{padding:16px}}@media (width<=380px){.ticket-number{width:21px;height:21px;font-size:12px}.ball{width:23px;height:23px;font-size:10px}}
