:root{--page-bg:radial-gradient(circle at top left, #b8c9b457, transparent 34%), radial-gradient(circle at top right, #dfe4d49e, transparent 28%), linear-gradient(180deg, #f7f6f1 0%, #efefe7 100%);--panel:#ffffffc7;--panel-shadow:0 24px 80px #28352c14, 0 8px 24px #28352c0f;--line-soft:#7a8a7c29;--text-strong:#182119;--text-soft:#667164;--accent:#3e6e51;--sans:"SF Pro Display", "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Segoe UI", "Microsoft YaHei", sans-serif;--mono:"SF Mono", "Cascadia Code", "Consolas", monospace;font-family:var(--sans);color:var(--text-strong);background:var(--page-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;color:var(--text-strong);background:var(--page-bg);margin:0}body:before{content:"";pointer-events:none;background:linear-gradient(90deg,#ffffff1f,#0000 22% 78%,#ffffff14),linear-gradient(#ffffff14,#0000 26%);position:fixed;inset:0}button,input{font:inherit}a{color:inherit}h1,h2,h3,p{margin:0}#root{min-height:100vh}.app-shell{width:min(1840px,100vw - clamp(18px,3vw,48px));margin:0 auto;padding:18px 0 36px}.topbar{border:1px solid var(--line-soft);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(18px);background:#ffffffb8;border-radius:28px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px;margin-bottom:18px;padding:18px 20px;display:grid}.topbar__brand,.half-id-display,.field-block,.board-config__group,.player-card__identity{gap:8px;display:grid}.topbar__brand p,.panel__head span,.field-block span,.board-config__group span,.player-card__meta small,.result-group__rank,.target-tag,.target-card__meta,.result-row__label span,.helper-text,.muted-text,.export-list li,.notes-panel li,.notes-panel p{color:var(--text-soft)}.topbar__brand p{letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.topbar__brand h1,.panel__head h2,.result-group__head h2,.target-card__head h3{color:var(--text-strong);letter-spacing:-.05em;margin:0;line-height:1.05}.topbar__brand h1{font-size:clamp(26px,3vw,36px)}.panel__head h2{font-size:clamp(24px,2.4vw,30px)}.topbar__controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.half-id-display{background:#f4f6f1eb;border:1px solid #7685781f;border-radius:18px;min-width:220px;padding:10px 14px}.half-id-display span,.field-block span,.board-config__group span{letter-spacing:.08em;font-size:12px;font-weight:700}.half-id-display strong{color:var(--text-strong);font-size:14px;line-height:1.3}.cloud-save-chip{min-width:0;color:var(--text-soft);background:#f4f6f1eb;border:1px solid #7685781f;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.cloud-save-chip span{letter-spacing:.08em;font-size:12px;font-weight:700}.cloud-save-chip strong{color:var(--text-strong);font-size:12px}.cloud-save-chip--saving,.cloud-save-chip--syncing{background:#e8f2e8f0;border-color:#4a70503d}.cloud-save-chip--conflict,.cloud-save-chip--error{background:#faeeebf0;border-color:#b05c4947}.view-tabs,.status-chips,.rule-actions,.toggle-row,.preset-tabs,.result-group__stats{flex-wrap:wrap;gap:10px;display:flex}.view-tabs{flex-wrap:nowrap;max-width:100%;padding-bottom:2px;overflow-x:auto}.view-tabs .view-tab{flex:none}.view-tab,.ghost-button,.preset-tab,.segment,.tenpai-button,.riichi-button,.action-button{min-height:42px;color:var(--text-soft);font:inherit;cursor:pointer;background:#f3f6f1f0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:0 16px;transition:transform .16s,border-color .16s,background .16s,color .16s,box-shadow .16s;display:inline-flex}.view-tab:hover,.ghost-button:hover,.preset-tab:hover,.segment:hover,.tenpai-button:hover,.riichi-button:hover,.action-button:hover{border-color:#4a705038;transform:translateY(-1px)}.view-tab--active,.preset-tab--active,.segment--active,.tenpai-button--active,.riichi-button--active{background:var(--accent);color:#f8fcf7;box-shadow:0 10px 24px #3e6e512e}.ghost-button,.action-button--muted{color:var(--text-strong)}.action-button{width:100%;color:var(--accent);background:#ecf4ecf5;justify-content:center;font-weight:700}.tenpai-button,.riichi-button{width:100%}.cloud-actions,.cloud-admin-tools,.cloud-recent-list{gap:10px;display:grid}.cloud-recent{width:100%;min-height:48px;color:var(--text-strong);font:inherit;text-align:left;cursor:pointer;background:#ffffff94;border:1px solid #7685781f;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.cloud-recent strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cloud-recent span{color:var(--text-soft);font-size:12px;font-weight:700}.cloud-recent--active{background:#e8f2e8f0;border-color:#4a705038}.tenpai-button:disabled{cursor:default;opacity:.82;transform:none}.page-layout{grid-template-columns:minmax(0,1.45fr) minmax(320px,.78fr);align-items:start;gap:18px;display:grid}.page-layout--board{grid-template-columns:minmax(0,1fr) clamp(360px,24vw,420px);gap:20px}.board-main-column{gap:18px;min-width:0;display:grid}.page-layout--board>.board-support-grid{display:none}.board-main-column .board-support-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:16px;display:grid}.page-layout--conditions{grid-template-columns:minmax(280px,340px) minmax(0,1fr)}.page-layout--export{grid-template-columns:minmax(0,1.18fr) minmax(320px,.72fr)}.page-stack,.side-column{gap:18px;display:grid}.board-support-grid{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:18px;display:grid}.side-column--conditions,.side-column--board{align-self:start;position:sticky;top:18px}.side-column--board .segmented{background:#eff4eedb}.side-column--board>.panel--soft,.side-column--board>.panel--warn{display:none}.panel,.result-group{border:1px solid var(--line-soft);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(20px);background:#ffffffc7;border-radius:28px}.panel{padding:20px}.panel--main{background:radial-gradient(circle at 12% 0,#e8f2e8f2,#0000 38%),linear-gradient(#ffffffdb,#f8faf6c2);padding:clamp(18px,1.6vw,26px)}.panel--rail{background:linear-gradient(#ffffffdb,#f6f9f5cc);padding:16px}.result-group{padding:18px}.panel--soft{background:linear-gradient(#f4f9f2f2,#eef4eceb)}.panel--warn{background:linear-gradient(#fcf7eff2,#f8f1e6eb)}.panel--notice{background:linear-gradient(#f1f6fcf2,#ebf2f9eb)}.panel__head,.result-group__head,.target-card__head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.panel__head{margin-bottom:16px}.panel__head p{color:var(--text-soft);margin:6px 0 0}.panel__head--compact{margin-bottom:14px}.panel__head--tight{align-items:center;margin-bottom:10px}.panel__head--tight h2{font-size:24px}.panel__head--tight span{color:var(--text-soft);font-size:13px;font-weight:700}.status-chip{min-height:40px;color:var(--text-soft);background:#ffffffb8;border:1px solid #7685781f;border-radius:999px;align-items:center;padding:0 14px;display:inline-flex}.status-chip--dealer{color:var(--accent);background:#4a70501a;border-color:#4a70502e;font-weight:700}.board-config{grid-template-columns:minmax(220px,.9fr) minmax(260px,1.1fr) 118px 118px;align-items:end;gap:12px;margin-bottom:14px;display:grid}.segmented{background:#f5f7f2f0;border:1px solid #7685781f;border-radius:18px;flex-wrap:wrap;gap:8px;padding:6px;display:flex}.segmented .segment{flex:88px}.segmented--wrap{flex-wrap:wrap}input,select{width:100%;min-height:46px;color:var(--text-strong);font:inherit;background:#ffffffe0;border:1px solid #7584772e;border-radius:16px;padding:0 14px;transition:border-color .16s,background .16s,box-shadow .16s}input:focus,select:focus{background:#fffffffa;border-color:#4a70507a;outline:none;box-shadow:0 0 0 4px #4a70501a}.player-table{background:#f7f8f4c2;border:1px solid #7685781f;border-radius:22px;overflow:hidden}.player-table__header,.player-card{grid-template-columns:minmax(190px,1.45fr) minmax(118px,150px) minmax(102px,128px) minmax(142px,168px) 76px 82px;align-items:center;gap:12px;display:grid}.player-table__header{color:var(--text-soft);letter-spacing:.08em;background:#f2f5efeb;border-bottom:1px solid #7685781f;padding:12px 18px;font-size:12px;font-weight:700}.player-grid{gap:10px;padding:10px;display:grid}.player-card{background:#ffffffd6;border:1px solid #7685781f;border-radius:16px;min-height:78px;padding:12px 14px;position:relative}.player-card--dealer{background:linear-gradient(#f1f7f0fa,#fbfcf9f0);border-color:#4a705033}.player-card__identity{gap:6px;min-width:0;display:grid}.player-card__motions{pointer-events:none;z-index:2;gap:8px;display:grid;position:absolute;top:8px;right:8px}.point-motion{background:#ffffffeb;border:1px solid #76857824;border-radius:16px;justify-items:end;gap:2px;min-width:96px;padding:10px 12px;animation:2.2s forwards pointMotionFloat;display:grid;box-shadow:0 10px 28px #2c3a301f}.point-motion strong{font-size:18px;line-height:1}.point-motion span{color:var(--text-soft);letter-spacing:.04em;font-size:12px;font-weight:700}.point-motion--gain strong{color:var(--accent)}.point-motion--loss strong{color:#b05c49}@keyframes pointMotionFloat{0%{opacity:0;transform:translateY(10px)scale(.94)}18%{opacity:1;transform:translateY(0)scale(1)}70%{opacity:1;transform:translateY(-10px)scale(1)}to{opacity:0;transform:translateY(-30px)scale(1.02)}}.player-card__meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.player-card__meta small{font-size:12px}.player-card__name-input{min-height:auto;color:var(--text-strong);letter-spacing:-.04em;box-shadow:none;background:0 0;border:none;border-radius:0;padding:0;font-size:clamp(22px,1.55vw,28px);font-weight:800;line-height:1}.player-card__name-input::placeholder{color:#2c3a3059}.player-card__name-input:focus{box-shadow:none;background:0 0;border:none}.current-seat-badge{min-height:26px;color:var(--accent);background:#4a70501a;border-radius:999px;justify-content:center;align-items:center;padding:0 9px;font-size:13px;font-weight:700;display:inline-flex}.target-seat{min-height:42px;color:var(--accent);background:#4a70501a;border-radius:999px;justify-content:center;align-items:center;padding:0 14px;font-weight:800;display:inline-flex}.field-block--row span{display:none}.player-card .field-block--row{gap:0}.player-card .field-block--row input,.player-card .field-block--row select{min-height:44px}.settlement-grid{gap:14px;display:grid}.settlement-card{background:#fafbf7e6;border:1px solid #7685781f;border-radius:20px;gap:12px;padding:16px;display:grid}.settlement-card__head h3{color:var(--text-strong);letter-spacing:-.03em;margin:0;font-size:18px}.compact-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.settlement-actions{gap:10px;display:grid}.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.fact-list{gap:10px;margin-bottom:8px;display:grid}.fact-list div,.log-item,.result-chip{background:#ffffffc2;border:1px solid #7685781a}.fact-list div{border-radius:18px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.fact-list span{color:var(--text-soft)}.fact-list strong,.log-item strong,.result-chip strong,.target-card__head h3,.result-group__head h2{color:var(--text-strong)}.result-chip small{color:var(--text-soft);margin-top:6px;font-size:11px;font-weight:700;line-height:1.45;display:block}.helper-text,.muted-text{margin:0;line-height:1.65}.history-list{gap:10px;display:grid}.history-item{background:#ffffffc2;border:1px solid #7685781a;border-radius:18px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.history-item p{color:var(--text-strong);margin:0}.history-item__title{justify-content:space-between;align-items:center;gap:12px;display:flex}.history-item__title span{color:var(--text-soft)}.settlement-breakdown{gap:12px;display:grid}.settlement-breakdown__card{background:#ffffffd1;border:1px solid #7685781f;border-radius:20px;gap:12px;padding:16px;display:grid}.settlement-breakdown__head{justify-content:space-between;align-items:center;gap:12px;display:flex}.settlement-breakdown__head strong,.settlement-breakdown__line strong{color:var(--text-strong)}.settlement-breakdown__lines{gap:8px;display:grid}.settlement-breakdown__line{background:#f6f8f3eb;border:1px solid #7685781a;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.settlement-breakdown__line span{color:var(--text-soft)}.amount-chip{border-radius:999px;align-items:center;min-height:34px;padding:0 12px;font-weight:800;display:inline-flex}.amount-chip--gain{color:var(--accent);background:#4a70501a}.amount-chip--loss{color:#b05c49;background:#b05c491f}.cloud-conflict-panel{border-color:#b05c4938;gap:14px;display:grid}.conflict-facts,.conflict-actions{gap:10px;display:grid}.conflict-facts{grid-template-columns:repeat(4,minmax(0,1fr))}.conflict-facts div{background:#ffffffb8;border:1px solid #7685781a;border-radius:16px;gap:4px;padding:12px 14px;display:grid}.conflict-facts span{color:var(--text-soft);font-size:12px;font-weight:700}.conflict-facts strong{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.conflict-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.action-button--danger{color:#944538;background:#b05c4924}.board-situation{gap:10px;display:grid}.board-standing-list{gap:8px;display:grid}.board-standing-row{background:#ffffffc7;border:1px solid #7685781a;border-radius:14px;grid-template-columns:54px minmax(0,1fr) 42px 92px;align-items:center;gap:8px;padding:10px 12px;display:grid}.board-standing-row span,.board-standing-row em{color:var(--text-soft);font-size:12px;font-style:normal;font-weight:700}.board-standing-row strong,.board-standing-row b{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-standing-row b{text-align:right}.board-gap-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.board-gap-list div{background:#ffffffb8;border:1px solid #7685781a;border-radius:14px;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;display:flex}.board-gap-list span{color:var(--text-soft);font-size:12px}.board-gap-list strong{color:var(--text-strong);font-size:13px}.situation-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:14px;display:grid}.situation-card{background:#fffc;border:1px solid #7685781f;border-radius:22px;gap:12px;padding:16px;display:grid}.situation-card--lead{background:linear-gradient(#f1f7f0f5,#ffffffd1);border-color:#4a705033}.situation-card__head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.situation-card__head h3{color:var(--text-strong);letter-spacing:-.04em;margin:0;font-size:24px;line-height:1}.situation-card__stats{gap:10px;display:grid}.situation-card__stats div,.gap-strip__item{background:#ffffffc2;border:1px solid #7685781a;border-radius:18px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.situation-card__stats span,.gap-strip__item span{color:var(--text-soft)}.situation-card__stats strong,.gap-strip__item strong{color:var(--text-strong)}.gap-strip{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.result-group__head{margin-bottom:14px}.result-group__rank{letter-spacing:.12em;margin:0 0 6px;font-size:12px;font-weight:700}.result-group__head h2{font-size:clamp(28px,2.7vw,34px)}.result-group__stats span{min-height:38px;color:var(--text-soft);background:#f5f7f2eb;border-radius:999px;align-items:center;padding:0 12px;display:inline-flex}.target-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.target-card{background:#ffffffd1;border:1px solid #7685781f;border-radius:24px;gap:12px;padding:16px;display:grid}.target-tag{letter-spacing:.12em;margin:0 0 4px;font-size:12px;font-weight:700}.target-card__meta{flex-wrap:wrap;gap:10px;font-size:14px;display:flex}.target-card__rows{gap:12px;display:grid}.result-row{grid-template-columns:96px minmax(0,1fr);align-items:start;gap:12px;display:grid}.result-row__label{gap:6px;display:grid}.result-row__label strong{min-height:42px;color:var(--accent);background:#4a705014;border:1px solid #4a705024;border-radius:16px;justify-content:center;align-items:center;padding:0 12px;font-size:13px;display:inline-flex}.result-row__label span{text-align:center;font-size:12px;font-weight:700}.result-row__chips{flex-wrap:wrap;gap:10px;display:flex}.result-chip{border-radius:18px;gap:4px;min-width:124px;padding:12px 14px;display:grid}.result-chip--placement{min-width:212px}.result-chip--placement strong,.result-chip--placement span{line-height:1.4}.placement-rank-switch{gap:10px;display:grid}.placement-rank-switch--inline{background:#f5f7f2b3;border:1px solid #7685781f;border-radius:16px;margin:0 0 14px;padding:12px}.placement-rank-switch--inline .segmented .segment{flex-basis:64px}.placement-rank-switch>span{color:var(--text-soft);font-size:13px;font-weight:700}.result-chip strong{font-size:16px;line-height:1.15}.result-chip span{color:var(--text-soft)}.empty-result{color:var(--text-soft);background:#f6f2eee6;border-radius:18px;margin:0;padding:12px 14px;line-height:1.65}.preset-tabs{margin-bottom:18px}.form-grid,.placement-grid{gap:14px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:14px}.placement-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.toggle-item{background:#f5f7f2f0;border-radius:999px;align-items:center;gap:8px;min-height:40px;padding:0 12px;display:inline-flex}.toggle-item input{width:16px;min-height:auto;margin:0;padding:0}.notes-panel{background:#f5f7f2e6;border-radius:22px;margin-top:18px;padding:16px 18px}.notes-panel a{color:var(--accent);font-weight:700;text-decoration:none}.notes-panel a:hover{text-decoration:underline}.notes-panel ul,.export-list{margin:12px 0 0;padding-left:18px}.notes-panel li,.export-list li{line-height:1.65}.export-preview{background:#ffffffd1;border:1px solid #7685781f;border-radius:22px;overflow:auto}.export-preview table{border-collapse:collapse;width:100%;min-width:620px}.export-preview th,.export-preview td{text-align:left;color:var(--text-strong);border-bottom:1px solid #7685781f;padding:12px 14px}.export-preview td strong,.export-preview td span{display:block}.export-preview td span{color:var(--text-soft);margin-top:4px}.export-preview th{z-index:1;background:#f4f6f1fa;position:sticky;top:0}.export-preview tbody tr:last-child td{border-bottom:none}@media (width<=1260px){.page-layout,.page-layout--export{grid-template-columns:1fr}.board-support-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-layout--board{grid-template-columns:1fr}.page-layout--board>.board-support-grid{display:none}.side-column--board{grid-template-columns:repeat(2,minmax(0,1fr));position:static}.side-column--conditions{position:static}}@media (width<=1040px){.board-config,.form-grid,.placement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-layout--conditions{grid-template-columns:1fr}}@media (width<=940px){.topbar{grid-template-columns:1fr;align-items:stretch}.topbar__controls{justify-content:flex-start}.half-id-display{width:100%;min-width:0}.cloud-save-chip{width:auto}.player-table__header{display:none}.player-card{grid-template-columns:repeat(2,minmax(0,1fr))}.player-card__identity,.player-card .tenpai-button,.player-card .riichi-button{grid-column:1/-1}.player-card__motions{top:12px;right:12px}.field-block--row span{display:block}.compact-form,.side-column--board{grid-template-columns:1fr}.panel__head,.result-group__head,.target-card__head,.situation-card__head{flex-direction:column;align-items:flex-start}}@media (width<=720px){.app-shell{width:min(100vw - 18px,1480px);padding-top:12px}.topbar,.panel,.result-group{border-radius:22px;padding:16px}.quick-actions,.board-config,.board-support-grid,.conflict-actions,.conflict-facts,.form-grid,.placement-grid,.compact-form,.situation-grid,.board-gap-list,.gap-strip,.target-grid,.result-row,.board-main-column .board-support-grid{grid-template-columns:1fr}.board-standing-row{grid-template-columns:48px minmax(0,1fr) 38px}.board-standing-row b{text-align:left;grid-column:2/-1}.view-tabs{width:100%}.player-card{grid-template-columns:1fr}.player-card__identity,.player-card .tenpai-button,.player-card .riichi-button{grid-column:auto}.player-card__motions{justify-items:stretch;position:static}.player-card__name-input{font-size:24px}.result-group__stats{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}.auth-page{grid-template-columns:minmax(0,1fr) minmax(360px,480px);align-items:center;gap:24px;width:min(1160px,100vw - 32px);min-height:100vh;margin:0 auto;padding:38px 0;display:grid}.auth-hero,.auth-card,.account-bar,.admin-hero,.admin-card{border:1px solid var(--line-soft);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(20px);background:#ffffffc7}.auth-hero{background:radial-gradient(circle at 16% 14%,#3e6e512e,#0000 28%),linear-gradient(145deg,#ffffffe0,#ecf4ecd1);border-radius:34px;align-content:end;gap:18px;min-height:520px;padding:clamp(28px,5vw,56px);display:grid}.auth-eyebrow,.auth-card__head span,.account-bar span,.admin-hero p,.admin-card__head span,.admin-card label span,.secret-field label,.secret-visibility-row span,.user-row__identity span{color:var(--text-soft);letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:800}.auth-hero h1,.auth-card h1,.auth-card h2,.admin-hero h1,.admin-card h2{color:var(--text-strong);letter-spacing:-.06em;margin:0;line-height:1.04}.auth-hero h1{max-width:680px;font-size:clamp(46px,8vw,92px)}.auth-hero p:not(.auth-eyebrow),.auth-card p,.admin-hero span{max-width:620px;color:var(--text-soft);font-size:clamp(16px,2vw,20px);line-height:1.8}.auth-card{border-radius:30px;gap:24px;padding:28px;display:grid}.auth-card--narrow{grid-column:1/-1;justify-self:center;width:min(520px,100%)}.auth-card__head,.admin-card__head{gap:8px;display:grid}.auth-card h1,.auth-card h2,.admin-card h2{font-size:clamp(28px,4vw,42px)}.auth-form,.admin-card{gap:16px;display:grid}.auth-form label,.admin-card label,.secret-field{gap:8px;display:grid}.secret-visibility-row{background:#ecf4ecb8;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.secret-visibility-row button,.secret-toggle-button{color:var(--accent);font:inherit;cursor:pointer;background:#ffffffd1;border:1px solid #4a705029;border-radius:999px;font-size:13px;font-weight:800}.secret-visibility-row button{min-height:34px;padding:0 12px}.secret-control{grid-template-columns:minmax(0,1fr) 64px;align-items:center;gap:8px;display:grid}.secret-control input{min-width:0}.secret-toggle-button{min-height:46px;padding:0 12px}.secret-visibility-row button:hover,.secret-toggle-button:hover{background:#fffffff5;border-color:#4a705052}.auth-error,.auth-success{border-radius:16px;padding:12px 14px;font-size:14px;line-height:1.6}.auth-error{color:#8d332c;background:#fff1efdb;border:1px solid #b05a5233}.auth-success{color:var(--accent);background:#ecf6ede6;border:1px solid #3e6e5133}.auth-primary-button,.account-button{min-height:46px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:0 18px;font-weight:800;transition:transform .16s,border-color .16s,background .16s,color .16s,box-shadow .16s;display:inline-flex}.auth-primary-button{background:var(--accent);color:#f8fcf7;width:100%;box-shadow:0 14px 30px #3e6e5133}.account-button{color:var(--text-soft);background:#f3f6f1f0}.auth-primary-button:hover,.account-button:hover{border-color:#4a705038;transform:translateY(-1px)}.auth-primary-button:disabled,.account-button:disabled{cursor:default;opacity:.68;transform:none}.account-button--active{background:var(--accent);color:#f8fcf7;box-shadow:0 10px 24px #3e6e512e}.auth-loader{background:#4a70501a;border-radius:999px;width:100%;height:8px;overflow:hidden}.auth-loader:after{content:"";border-radius:inherit;background:var(--accent);width:40%;height:100%;animation:1.2s ease-in-out infinite auth-loader;display:block}.auth-shell{min-height:100vh}.account-bar{border-radius:999px;justify-content:space-between;align-items:center;gap:14px;width:min(1480px,100vw - 32px);margin:10px auto 0;padding:10px 12px 10px 18px;display:flex}.account-bar>div:first-child{align-items:baseline;gap:10px;min-width:0;display:flex}.account-bar strong{color:var(--text-strong)}.account-bar__actions{flex-wrap:wrap;gap:8px;display:flex}.admin-shell{width:min(1480px,100vw - 32px);margin:0 auto;padding:18px 0 36px}.admin-hero{border-radius:30px;justify-content:space-between;align-items:end;gap:18px;margin-bottom:18px;display:flex}.admin-hero>div{gap:8px;display:grid}.admin-hero strong{color:var(--accent);background:#4a70501a;border-radius:999px;flex:none;padding:12px 16px}.admin-layout{grid-template-columns:minmax(320px,420px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.admin-overview-grid,.admin-maintenance-grid{gap:18px;margin-bottom:18px;display:grid}.admin-overview-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.admin-maintenance-grid{grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);align-items:start;margin-top:18px}.admin-card--wide{grid-column:span 1}.admin-stat-card{border:1px solid var(--line-soft);box-shadow:var(--panel-shadow);background:#ffffffbd;border-radius:22px;gap:8px;padding:18px;display:grid}.admin-stat-card span,.admin-data-row span,.admin-log-row span,.admin-login-row span,.admin-empty{color:var(--text-soft);font-size:13px;font-weight:700;line-height:1.6}.admin-stat-card strong{color:var(--text-strong);font-size:clamp(26px,3vw,38px);line-height:1}.admin-toolbar{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;display:grid}.admin-table-list,.admin-log-list{gap:10px;display:grid}.admin-data-row,.admin-log-row,.admin-login-row{background:#ffffffad;border:1px solid #7685781f;border-radius:20px;grid-template-columns:minmax(180px,1fr) minmax(160px,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.admin-data-row--compact{grid-template-columns:minmax(0,1fr) auto auto}.admin-data-row>div,.admin-log-row>div,.admin-login-row>div{gap:4px;min-width:0;display:grid}.admin-data-row strong,.admin-log-row strong,.admin-login-row strong{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.admin-pill{color:var(--accent);background:#4a70501a;border-radius:999px;justify-self:start;padding:7px 10px}.admin-pill--warn{color:#9d5a16;background:#d0893d21}.admin-log-row{grid-template-columns:minmax(0,1fr) minmax(180px,.8fr)}.admin-login-row{grid-template-columns:minmax(140px,.8fr) minmax(130px,.72fr) minmax(180px,1.1fr)}.admin-login-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-log-row--warn{background:#fff9eebd;border-color:#d0893d33}.admin-log-row--error{background:#fff1efb8;border-color:#b05a5233}.admin-snapshot-preview{max-height:380px;color:var(--text-strong);white-space:pre-wrap;background:#f7f9f5d1;border:1px solid #7685781f;border-radius:20px;margin:0;padding:16px;font-size:12px;line-height:1.6;overflow:auto}.user-list{gap:10px;display:grid}.user-row{background:#ffffffb8;border:1px solid #7685781f;border-radius:20px;grid-template-columns:minmax(180px,.8fr) minmax(0,1.4fr);align-items:center;gap:12px;padding:12px;display:grid}.user-row__identity{gap:6px;min-width:0;display:grid}.user-row__identity strong{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:20px;overflow:hidden}.user-row__login{letter-spacing:0;text-transform:none}.user-row__controls{grid-template-columns:96px 120px minmax(120px,1fr) 108px;align-items:center;gap:8px;display:grid}@keyframes auth-loader{0%{transform:translate(-100%)}to{transform:translate(260%)}}@media (prefers-reduced-motion:reduce){.auth-loader:after{animation:none}}@media (width<=980px){.auth-page,.admin-layout,.admin-maintenance-grid{grid-template-columns:1fr}.admin-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-hero{min-height:auto}.user-row,.user-row__controls,.admin-data-row,.admin-log-row,.admin-login-row,.admin-toolbar{grid-template-columns:1fr}}@media (width<=720px){.auth-page,.admin-shell,.account-bar{width:min(100vw - 18px,1480px)}.auth-card,.admin-hero,.admin-card{border-radius:22px;padding:16px}.auth-hero{border-radius:24px;padding:28px 20px}.account-bar,.admin-hero{border-radius:22px;flex-direction:column;align-items:stretch}.account-bar>div:first-child,.account-bar__actions{justify-content:space-between;width:100%}.account-button{flex:1 1 0}.admin-overview-grid{grid-template-columns:1fr}.admin-stat-card{border-radius:18px}}
