body{
    font-family:sans-serif;
    margin:0;
    padding:20px;
    background:#f2f2f2;
}
:root{
    --bg-dark:#10131f;
    --bg-card:#171b2a;
    --gold:#f5c542;
    --blue:#3b82f6;
    --purple:#8b5cf6;
    --green:#22c55e;
    --red:#ef4444;
    --text-main:#f8fafc;
    --text-sub:#aab2c5;
}

body{
    background:
        radial-gradient(circle at top, rgba(245,197,66,0.18), transparent 32%),
        linear-gradient(180deg,#0b0e18 0%,#141827 100%);
    color:var(--text-main);
}

h1{
    font-size:32px;
    color:var(--gold);
    text-shadow:0 0 14px rgba(245,197,66,0.45);
}

h2{
    color:#ffe28a;
    border-left:5px solid var(--gold);
    padding-left:10px;
}

.card{
    background:linear-gradient(180deg,#20263a,#171b2a);
    color:var(--text-main);
    border:1px solid rgba(255,255,255,0.08);
    box-shadow:0 8px 24px rgba(0,0,0,0.35);
}

.card p,
.card label{
    color:var(--text-sub);
}

input,
select,
textarea{
    background:#0f1320;
    color:var(--text-main);
    border:1px solid rgba(255,255,255,0.14);
    border-radius:10px;
}

button{
    background:linear-gradient(135deg,#2563eb,#7c3aed);
    font-weight:bold;
    box-shadow:0 4px 12px rgba(59,130,246,0.25);
}

button:hover{
    filter:brightness(1.12);
    transform:translateY(-1px);
}

.menu-card{
    background:linear-gradient(160deg,#20263a,#111522);
    border:1px solid rgba(245,197,66,0.35);
    border-radius:22px;
    padding:26px 14px;
    text-align:center;
    cursor:pointer;
    box-shadow:0 8px 20px rgba(0,0,0,0.35);
    transition:0.2s;
}

.menu-card:hover{
    transform:translateY(-4px) scale(1.02);
    box-shadow:0 0 20px rgba(245,197,66,0.18);
}

.menu-icon{
    font-size:42px;
    margin-bottom:10px;
}

.menu-title{
    font-size:17px;
    font-weight:bold;
    color:var(--text-main);
}

#totalMedalAsset{
    color:var(--gold);
    text-shadow:0 0 18px rgba(245,197,66,0.45);
}

.profit{
    color:#4ade80;
    text-shadow:0 0 8px rgba(34,197,94,0.35);
}

.loss{
    color:#fb7185;
    text-shadow:0 0 8px rgba(239,68,68,0.35);
}
/* ==============================
   小役カウンター タイルUI
============================== */

#counterArea{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin-top:18px;
}

.counter-tile{
    background:linear-gradient(160deg,#20263a,#111522);
    border:1px solid rgba(245,197,66,0.28);
    border-radius:22px;
    padding:18px 10px;
    text-align:center;
    box-shadow:
        0 8px 20px rgba(0,0,0,0.35),
        inset 0 0 18px rgba(255,255,255,0.03);
}

.counter-color{
    font-size:38px;
    line-height:1;
    margin-bottom:8px;
}

.counter-name{
    font-size:15px;
    font-weight:bold;
    min-height:22px;
}

.counter-count{
    font-size:34px;
    font-weight:bold;
    color:var(--gold);
    margin-top:10px;
    text-shadow:0 0 14px rgba(245,197,66,0.4);
}

.counter-rate{
    font-size:14px;
    color:var(--text-sub);
    margin-top:4px;
}

.counter-buttons{
    display:flex;
    justify-content:center;
    gap:8px;
    margin-top:12px;
}

.counter-buttons button{
    width:44px;
    height:38px;
    padding:0;
    border-radius:12px;
    font-size:20px;
}

.counter-plus{
    background:linear-gradient(135deg,#2563eb,#7c3aed);
}

.counter-minus{
    background:linear-gradient(135deg,#4b5563,#111827);
}
/* ==============================
   下部固定ナビゲーション
============================== */

body{
    padding-bottom:96px;
}

.bottom-nav{
    position:fixed;
    left:50%;
    bottom:14px;
    transform:translateX(-50%);
    width:calc(100% - 28px);
    max-width:520px;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:6px;
    padding:8px;
    background:rgba(15,19,32,0.92);
    backdrop-filter:blur(14px);
    border:1px solid rgba(245,197,66,0.3);
    border-radius:24px;
    box-shadow:
        0 10px 30px rgba(0,0,0,0.45),
        0 0 18px rgba(245,197,66,0.12);
    z-index:9999;
}

.bottom-nav-item{
    width:100%;
    padding:8px 4px;
    background:transparent;
    box-shadow:none;
    border-radius:16px;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:3px;
    color:var(--text-sub);
}

.bottom-nav-item:hover{
    background:rgba(245,197,66,0.12);
    transform:none;
    filter:none;
}

.bottom-nav-icon{
    font-size:22px;
    line-height:1;
}

.bottom-nav-label{
    font-size:11px;
    font-weight:bold;
    white-space:nowrap;
}

/* ==============================
   Mobile SPA screen navigation
============================== */
.app-screen-header{
    position:sticky;
    top:0;
    z-index:9000;
    min-height:58px;
    margin:0 0 14px;
    padding:7px 4px;
    display:grid;
    grid-template-columns:minmax(76px,1fr) auto minmax(76px,1fr);
    align-items:center;
    background:rgba(11,13,16,.94);
    border-bottom:1px solid rgba(255,255,255,.1);
    backdrop-filter:blur(16px);
}
.app-screen-header[hidden]{ display:none!important; }
.app-screen-header h1{
    margin:0;
    font-size:18px;
    line-height:1.2;
    text-align:center;
    white-space:nowrap;
}
.app-back-button{
    width:auto;
    min-width:76px;
    min-height:44px;
    padding:8px 10px;
    justify-self:start;
    border:0;
    background:transparent;
    box-shadow:none;
    color:var(--text-main);
}
.app-back-button:hover{ background:var(--bg-secondary);transform:none;filter:none; }
.app-header-spacer{ min-width:76px; }
#homeScreen,
#playSection,#manualRecordCard,#counterSection,#shopSection,#shopManagementSection,
#shopDetailSection,#analysisSection,#shopAnalysisCard,#machineAnalysisCard,#chartCard,
#historyCard,#memorySection,#memoryFormSection,#memoryDetailSection,#accountSettingsSection{
    animation:app-screen-enter 150ms ease-out;
}
#homeScreen,#playSection,#counterSection,#shopSection,#shopManagementSection,
#shopDetailSection,#analysisSection,#memorySection,#memoryFormSection,
#memoryDetailSection,#accountSettingsSection{
    min-height:calc(100dvh - 190px);
}
@keyframes app-screen-enter{
    from{ opacity:.35;transform:translateY(5px); }
    to{ opacity:1;transform:translateY(0); }
}

.toggle-button{
    background:linear-gradient(135deg,#f5c542,#b7791f);
    color:#111522;
    font-weight:bold;
    margin-bottom:12px;
}

.auth-screen{
    min-height:calc(100vh - 40px);
    display:grid;
    place-items:center;
}

.auth-card{
    width:min(100%, 420px);
    padding:24px;
    border-radius:20px;
    background:linear-gradient(180deg,#20263a,#171b2a);
    border:1px solid rgba(255,255,255,0.08);
    box-shadow:0 12px 36px rgba(0,0,0,0.4);
    box-sizing:border-box;
}

.logout-button{
    width:auto;
    min-height:38px;
    padding:8px 14px;
    margin:0 0 14px auto;
    display:block;
    background:linear-gradient(135deg,#4b5563,#111827);
}

.shop-details{
    margin-top:6px;
    color:var(--text-sub);
    font-size:12px;
    line-height:1.5;
    white-space:normal;
    min-width:180px;
}

.card a{
    color:#93c5fd;
}

.secondary-button{background:linear-gradient(135deg,#475569,#334155)}
.cash-button{background:linear-gradient(135deg,#059669,#047857)}
.text-button{width:auto;background:transparent;border:1px solid rgba(255,255,255,.16);color:var(--text-sub)}
button:disabled{opacity:.55;cursor:not-allowed}
.inline-message{min-height:22px;margin:10px 0;color:var(--text-sub);font-size:14px}
.inline-message.success{color:#86efac}
.inline-message.error{color:#fca5a5}
.section-description{color:var(--text-sub);font-size:14px}
.section-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.section-heading-row h2{margin:2px 0 0}
.section-heading-row .eyebrow{margin:0;color:#93c5fd;font-size:12px;letter-spacing:.1em}
.shop-management-filters{display:grid;grid-template-columns:160px minmax(0,1fr);align-items:center;gap:10px 12px;margin-top:18px;padding:14px;border-radius:14px;background:#121827;border:1px solid rgba(255,255,255,.07)}
.shop-management-filters label{font-size:12px;color:var(--text-sub)}
.shop-management-filters input,.shop-management-filters select{margin:0;min-width:0}
.filter-result{margin:12px 2px 0;color:var(--text-sub);font-size:13px;text-align:right}
.shop-card-list{display:grid;gap:12px;margin-top:20px}
.shop-summary-card{display:block;text-align:left;padding:18px;background:linear-gradient(145deg,#242b40,#181d2d);border:1px solid rgba(255,255,255,.09)}
.shop-summary-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px}
.shop-summary-name{font-size:18px;font-weight:700}
.shop-summary-heading small{color:#fcd34d;font-size:14px}
.shop-summary-stat{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:10px;margin:8px 0}
.shop-summary-stat small,.shop-summary-sub{color:var(--text-sub)}
.shop-summary-stat strong{font-size:20px}
.shop-summary-sub{display:block;padding-top:10px;font-size:13px;line-height:1.5;border-top:1px solid rgba(255,255,255,.07)}
.shop-summary-arrow{display:block;margin-top:12px;color:#93c5fd;font-size:13px;text-align:right}
.shop-empty-state{text-align:center;padding:30px 18px;border-radius:16px;background:#121827;border:1px dashed rgba(255,255,255,.16)}
.shop-empty-state p{color:var(--text-sub);line-height:1.7}
.shop-empty-icon{font-size:42px}
.danger-text-button{width:auto;margin:0 auto;display:block;background:transparent;color:#fca5a5;border:1px solid rgba(248,113,113,.35)}
.play-note-input{min-height:110px;resize:vertical;line-height:1.55}
.record-detail-modal{position:fixed;inset:0;z-index:1000;place-items:center;padding:18px;background:rgba(3,7,18,.82)}
.record-detail-card{position:relative;width:min(100%,520px);max-height:85vh;overflow:auto;padding:24px;border-radius:18px;background:#1b2132;border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 70px rgba(0,0,0,.55)}
.record-detail-close{position:absolute;top:10px;right:10px;width:38px;height:38px;padding:0;border-radius:50%;background:#111827}
.record-detail-profit{font-size:30px;font-weight:700;margin:18px 0}
.record-detail-list>div{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:12px 0;border-top:1px solid rgba(255,255,255,.08)}
.record-detail-list dt{color:var(--text-sub)}
.record-detail-list dd{margin:0}
.record-note-row dd{white-space:pre-wrap;overflow-wrap:anywhere}
.shop-detail-header .eyebrow{margin:16px 0 2px;color:#93c5fd;font-size:12px;letter-spacing:.12em}
.shop-detail-header h2{margin-top:0;font-size:28px}
.asset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.asset-grid>div{padding:15px 10px;border-radius:14px;background:#121827;border:1px solid rgba(255,255,255,.07)}
.asset-grid span{display:block;color:var(--text-sub);font-size:12px;margin-bottom:6px}
.asset-grid strong{font-size:18px}
.next-prize-message{padding:12px 14px;border-radius:12px;background:rgba(59,130,246,.12);color:#bfdbfe}
.detail-actions{display:grid;gap:10px;margin:18px 0}
.shop-facts{margin:18px 0}
.shop-facts>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.shop-facts dt{color:var(--text-sub)}
.shop-facts dd{margin:0;text-align:right}
.strategy-card,.operation-panel{padding:16px;border-radius:14px;background:#121827;border:1px solid rgba(255,255,255,.08);margin:16px 0}
.strategy-card p{display:grid;grid-template-columns:100px 1fr;gap:12px}
.strategy-card p span{color:var(--text-sub)}
.shop-links{padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}
.operation-preview{padding:14px;margin:12px 0;border-radius:12px;background:rgba(255,255,255,.05);line-height:1.7}
.shop-history-section{margin-top:26px}
.transaction-list{display:grid;gap:10px}
.transaction-item{padding:14px;border-radius:13px;background:#121827;border:1px solid rgba(255,255,255,.07)}
.transaction-item>div{display:flex;align-items:center;gap:8px}
.transaction-item time{margin-left:auto;color:var(--text-sub);font-size:12px}
.transaction-item p{margin:8px 0}
.transaction-item small{color:var(--text-sub)}
.transaction-icon{font-size:20px}
.empty-state{color:var(--text-sub)}

@media(max-width:560px){
    .asset-grid{grid-template-columns:1fr 1fr}
    .asset-grid>div:first-child{grid-column:1/-1}
    .asset-grid strong{font-size:20px}
    .section-heading-row{display:block}
    .shop-management-filters{grid-template-columns:1fr}
    .shop-management-filters label{margin-top:4px}
}

/* ==============================
   スマホ最適化 ver0.2
============================== */

html{
    -webkit-text-size-adjust:100%;
}

body{
    padding:12px 10px 110px;
    overflow-x:hidden;
}

.container{
    width:100%;
    max-width:520px;
    margin:0 auto;
}

h1{
    font-size:26px;
    margin:12px 0 16px;
    text-align:center;
}

h2{
    font-size:20px;
    margin-top:0;
}

.card{
    padding:16px;
    border-radius:18px;
    margin-bottom:14px;
}

input,
select,
textarea,
button{
    width:100%;
    min-height:48px;
    font-size:16px;
    box-sizing:border-box;
}

input,
select,
textarea{
    margin-top:6px;
    margin-bottom:10px;
    padding:12px;
}

button{
    touch-action:manipulation;
}

.home-grid{
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.menu-card{
    min-height:112px;
    padding:18px 8px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
}

.menu-icon{
    font-size:34px;
    margin-bottom:8px;
}

.menu-title{
    font-size:14px;
    line-height:1.3;
}

#counterArea{
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.counter-tile{
    padding:14px 8px;
    border-radius:18px;
}

.counter-color{
    font-size:32px;
}

.counter-name{
    font-size:14px;
}

.counter-count{
    font-size:30px;
}

.counter-rate{
    font-size:13px;
}

.counter-buttons button{
    width:50px;
    height:44px;
    min-height:44px;
}

.card table{
    display:block;
    width:100%;
    overflow-x:auto;
    white-space:nowrap;
    -webkit-overflow-scrolling:touch;
}

th,
td{
    padding:8px;
    font-size:13px;
}

.bottom-nav{
    bottom:10px;
    width:calc(100% - 20px);
    max-width:520px;
}

.bottom-nav-item{
    min-height:52px;
    padding:6px 2px;
}

.bottom-nav-icon{
    font-size:20px;
}

.bottom-nav-label{
    font-size:10px;
}

@media(max-width:360px){
    .menu-title{
        font-size:13px;
    }

    .counter-count{
        font-size:28px;
    }

    .bottom-nav-label{
        font-size:9px;
    }
}
/* ==============================
   ホームメニュー 2列固定調整
============================== */

.home-grid{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:12px !important;
    width:100%;
}

.home-grid .menu-card{
    width:100%;
    min-width:0;
    box-sizing:border-box;
}

@media(max-width:420px){
    .home-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
        gap:10px !important;
    }

    .home-grid .menu-card{
        min-height:105px;
        padding:16px 6px;
    }
}
.home-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px;
}

/* 思い出 */
.memory-filters{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin:16px 0;
}
.memory-filters input,
.memory-filters select{ margin:0; }
.memory-filters input[type="search"]{ grid-column:1 / -1; }
.memory-favorite-filter{
    display:flex;
    align-items:center;
    gap:8px;
    min-height:44px;
    color:#dfe5f5;
}
.memory-favorite-filter input{ width:auto; margin:0; }
.memory-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px;
}
.memory-card{
    min-width:0;
    overflow:hidden;
    border:1px solid #394159;
    border-radius:14px;
    background:#151a29;
    cursor:pointer;
}
.memory-cover{
    position:relative;
    aspect-ratio:1 / 1;
    background:#090d17;
}
.memory-cover img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}
.memory-heart{
    position:absolute;
    top:7px;
    right:7px;
    width:36px;
    height:36px;
    padding:0;
    border:0;
    border-radius:50%;
    color:white;
    background:rgba(8,10,18,.68);
    box-shadow:none;
}
.memory-heart.active{ color:#ff537b; }
.memory-image-count{
    position:absolute;
    left:7px;
    bottom:7px;
    padding:4px 7px;
    border-radius:12px;
    color:white;
    background:rgba(8,10,18,.72);
    font-size:12px;
}
.memory-card-body{
    display:flex;
    flex-direction:column;
    gap:4px;
    min-height:82px;
    padding:10px;
}
.memory-card-body small,
.memory-card-body span{
    overflow:hidden;
    color:#aeb7cb;
    font-size:11px;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.memory-card-body strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.memory-empty{
    grid-column:1 / -1;
    padding:40px 16px;
    border:1px dashed #46506b;
    border-radius:14px;
    text-align:center;
}
.memory-empty div{ font-size:48px; }
.memory-empty p{ color:#aeb7cb; }
.memory-preview-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:8px;
    margin:10px 0 18px;
}
.memory-preview-item{
    position:relative;
    aspect-ratio:1 / 1;
    overflow:hidden;
    border-radius:10px;
    background:#0b0f1a;
}
.memory-preview-item img{ width:100%; height:100%; object-fit:cover; }
.memory-preview-item button{
    position:absolute;
    top:4px;
    right:4px;
    width:30px;
    height:30px;
    padding:0;
    border-radius:50%;
    background:rgba(0,0,0,.72);
}
.memory-preview-item span{
    position:absolute;
    left:5px;
    bottom:5px;
    padding:3px 6px;
    border-radius:8px;
    color:#fff;
    background:rgba(0,0,0,.72);
    font-size:11px;
}
.memory-preview-help{ grid-column:1 / -1; color:#aeb7cb; }
.memory-detail-gallery{
    display:grid;
    grid-template-columns:40px minmax(0, 1fr) 40px;
    align-items:center;
    gap:6px;
    margin-top:14px;
}
.memory-detail-gallery img{
    width:100%;
    max-height:520px;
    aspect-ratio:1 / 1;
    object-fit:contain;
    border-radius:12px;
    background:#080b13;
    cursor:zoom-in;
}
.memory-gallery-arrow{
    min-height:48px;
    padding:0;
    font-size:32px;
    background:#252c40;
}
.memory-gallery-position{ margin:6px 0 16px; text-align:center; color:#aeb7cb; }
.memory-detail-heading{ display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.memory-detail-heading h2{ margin-top:4px; }
.memory-detail-heading > span{ color:#ff537b; font-size:30px; }
.memory-category-badge{
    display:inline-block;
    padding:5px 10px;
    border:1px solid #d6aa30;
    border-radius:14px;
    color:#ffd45c;
    font-size:12px;
}
.memory-detail-meta div{ padding:10px 0; border-bottom:1px solid #333b50; }
.memory-detail-meta dt{ color:#98a2b8; font-size:12px; }
.memory-detail-meta dd{ margin:5px 0 0; }
.memory-detail-meta dd span{ color:#ffd45c; }
.memory-note{ white-space:pre-wrap; overflow-wrap:anywhere; }
.memory-lightbox{
    position:fixed;
    inset:0;
    z-index:1000;
    align-items:center;
    justify-content:center;
    padding:18px;
    background:rgba(0,0,0,.94);
}
.memory-lightbox img{ max-width:100%; max-height:90vh; object-fit:contain; }
.memory-lightbox button{
    position:absolute;
    top:16px;
    right:16px;
    width:44px;
    height:44px;
    padding:0;
    border-radius:50%;
    font-size:24px;
}
@media(max-width:420px){
    .memory-filters{ grid-template-columns:1fr; }
    .memory-filters input[type="search"]{ grid-column:auto; }
    .memory-detail-gallery{ grid-template-columns:32px minmax(0, 1fr) 32px; }
}

/* =========================================================
   Unified dark FinTech theme
========================================================= */
:root{
    --bg-main:#0B0D10;
    --bg-card:#15181D;
    --bg-secondary:#1C2026;
    --bg-elevated:#22272E;
    --text-main:#F8FAFC;
    --text-secondary:#94A3B8;
    --border:#2A3038;
    --play:#FF8A00;
    --counter:#8B5CF6;
    --shop-register:#3B82F6;
    --shop-manage:#06B6D4;
    --analysis:#22C55E;
    --memory:#EC4899;
    --favorite:#FBBF24;
    --positive:#22C55E;
    --negative:#EF4444;
    --cashout:#F59E0B;
    --danger:#EF4444;
    --radius-card:16px;
    --radius-control:12px;
    --transition-fast:160ms ease;
}

*{ -webkit-tap-highlight-color:transparent; }
html{ color-scheme:dark; background:var(--bg-main); }
body{
    background:var(--bg-main);
    color:var(--text-main);
    font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;
    line-height:1.5;
}
.container{ max-width:560px; }
h1{
    color:var(--text-main);
    text-shadow:none;
    font-size:clamp(24px,7vw,30px);
    letter-spacing:-.03em;
}
h2{
    color:var(--text-main);
    border-left:3px solid var(--border);
    font-size:21px;
    letter-spacing:-.02em;
}
h3{ color:var(--text-main); }
.card{
    padding:18px;
    border:1px solid var(--border);
    border-radius:var(--radius-card);
    background:var(--bg-card);
    box-shadow:0 8px 24px rgba(0,0,0,.16);
}
.card p,.card label,.section-description{ color:var(--text-secondary); }
.card a{ color:#7DD3FC; }

input,select,textarea{
    min-height:48px;
    padding:12px 13px;
    border:1px solid var(--border);
    border-radius:var(--radius-control);
    outline:none;
    background:var(--bg-secondary);
    color:var(--text-main);
    transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast);
}
textarea{ min-height:96px; }
input::placeholder,textarea::placeholder{ color:var(--text-secondary); opacity:.82; }
input:focus,select:focus,textarea:focus{
    border-color:#64748B;
    background:#20252C;
    box-shadow:0 0 0 3px rgba(100,116,139,.16);
}
#playSection :is(input,select,textarea):focus{ border-color:var(--play);box-shadow:0 0 0 3px rgba(255,138,0,.16); }
#counterSection :is(input,select,textarea):focus{ border-color:var(--counter);box-shadow:0 0 0 3px rgba(139,92,246,.16); }
#shopSection :is(input,select,textarea):focus{ border-color:var(--shop-register);box-shadow:0 0 0 3px rgba(59,130,246,.16); }
#shopManagementSection :is(input,select,textarea):focus,#shopDetailSection :is(input,select,textarea):focus{ border-color:var(--shop-manage);box-shadow:0 0 0 3px rgba(6,182,212,.16); }
#analysisSection :is(input,select,textarea):focus{ border-color:var(--analysis);box-shadow:0 0 0 3px rgba(34,197,94,.16); }
#memorySection :is(input,select,textarea):focus,#memoryFormSection :is(input,select,textarea):focus{ border-color:var(--memory);box-shadow:0 0 0 3px rgba(236,72,153,.16); }

button{
    min-height:48px;
    padding:11px 16px;
    border:1px solid transparent;
    border-radius:var(--radius-control);
    background:var(--shop-register);
    color:white;
    font-weight:700;
    box-shadow:none;
    transition:transform var(--transition-fast),opacity var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast);
}
button:hover{ filter:none; transform:none; opacity:.92; }
button:active{ transform:scale(.98); opacity:.82; }
button:focus-visible{ outline:3px solid rgba(248,250,252,.28);outline-offset:2px; }
button:disabled{ opacity:.45;transform:none; }
.secondary-button,.text-button{
    border-color:var(--border);
    background:var(--bg-secondary);
    color:var(--text-main);
}
.cash-button{ background:var(--cashout);color:#17120A; }
.danger-text-button{
    border-color:rgba(239,68,68,.44);
    background:transparent;
    color:#FCA5A5;
    font-weight:600;
}
.logout-button{ border-color:var(--border);background:var(--bg-secondary);color:var(--text-secondary); }
.toggle-button{ background:var(--favorite);color:#17120A; }

.home-dashboard-card{ position:relative;overflow:hidden; }
.home-dashboard-card::before{
    content:"";position:absolute;inset:0 0 auto;height:2px;
    background:linear-gradient(90deg,transparent,#F8FAFC,transparent);opacity:.55;
}
.home-dashboard-card > p:nth-of-type(1){ margin-bottom:2px!important;font-size:12px!important;letter-spacing:.04em; }
.home-dashboard-card > p:nth-of-type(2){ margin:4px 0 18px!important;line-height:1.1; }
#totalMedalAsset{
    color:var(--text-main);
    font-variant-numeric:tabular-nums;
    letter-spacing:-.04em;
    text-shadow:none;
}
#todayProfitCard,#monthProfitCard{ font-weight:750;font-variant-numeric:tabular-nums; }
.profit{ color:var(--positive)!important;text-shadow:none; }
.loss{ color:var(--negative)!important;text-shadow:none; }
.profit-zero{ color:var(--text-secondary)!important; }

.home-grid{ gap:10px!important; }
.menu-card{
    --feature-color:var(--text-secondary);
    position:relative;
    min-height:112px;
    overflow:hidden;
    padding:18px 10px;
    border:1px solid var(--border);
    border-radius:var(--radius-card);
    background:var(--bg-secondary);
    box-shadow:none;
    transition:transform var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast);
}
.menu-card::before{
    content:"";position:absolute;inset:0 18px auto;height:2px;
    border-radius:999px;background:var(--feature-color);
}
.menu-card:hover{ transform:none;box-shadow:none;border-color:color-mix(in srgb,var(--feature-color) 52%,var(--border));background:var(--bg-elevated); }
.menu-card:active{ transform:scale(.975); }
.menu-card .menu-icon{ font-size:34px;filter:drop-shadow(0 5px 10px color-mix(in srgb,var(--feature-color) 24%,transparent)); }
.menu-card .menu-title{ font-size:14px;color:var(--text-main); }
.menu-play{ --feature-color:var(--play); }
.menu-counter{ --feature-color:var(--counter); }
.menu-shop-register{ --feature-color:var(--shop-register); }
.menu-shop-manage{ --feature-color:var(--shop-manage); }
.menu-analysis{ --feature-color:var(--analysis); }
.menu-memory{ --feature-color:var(--memory); }

#playSection h2{ border-color:var(--play); }
#playSection > button,#playSection #currentPlay > button{ background:var(--play);color:#1C1105; }
.play-live-status{
    display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;
    background:rgba(255,138,0,.12);color:var(--play);font-size:13px;letter-spacing:.02em;
}
#counterSection h2{ border-color:var(--counter); }
#counterSection > button{ background:var(--counter); }
#counterArea{ gap:10px; }
.counter-tile{
    border-color:var(--border);border-radius:var(--radius-card);
    background:var(--bg-secondary);box-shadow:none;
}
.counter-count{ color:var(--text-main);text-shadow:none;font-variant-numeric:tabular-nums; }
.counter-plus{ background:var(--counter); }
.counter-minus{ border-color:var(--border);background:#30363F; }

#shopSection h2{ border-color:var(--shop-register); }
#shopSection #shopSaveButton{ background:var(--shop-register); }
#shopManagementSection h2,#shopDetailSection h2{ border-color:var(--shop-manage); }
.shop-management-filters,.shop-empty-state,.strategy-card,.operation-panel,.transaction-item,.asset-grid>div{
    border-color:var(--border);background:var(--bg-secondary);
}
.shop-summary-card{
    position:relative;padding:18px;border-color:var(--border);
    background:var(--bg-secondary);box-shadow:none;
}
.shop-summary-card::before{ content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--shop-manage);border-radius:3px; }
.shop-summary-heading small{ color:var(--shop-manage); }
.shop-summary-stat strong{ color:var(--text-main);font-variant-numeric:tabular-nums; }
.shop-summary-stat.cashable-stat strong{ color:var(--shop-manage); }
.shop-summary-sub{ border-color:var(--border);color:var(--favorite); }
.shop-summary-arrow{ color:var(--shop-manage); }
.next-prize-message{ background:rgba(251,191,36,.1);color:var(--favorite); }
#shopDetailSection .secondary-button{ background:var(--shop-register);border-color:transparent;color:white; }
#shopDetailSection .cash-button{ background:var(--cashout);color:#17120A; }

#analysisSection h2,#shopAnalysisCard h2,#machineAnalysisCard h2,#chartCard h2,#historyCard h2{ border-color:var(--analysis); }
#analysisSection button,#chartCard button{ background:var(--analysis);color:#071A0D; }
#totalProfit,#incomeValue,#bestWin{ color:var(--positive);font-size:1.2em;font-weight:750;font-variant-numeric:tabular-nums; }
#worstLoss{ color:var(--negative);font-size:1.2em;font-weight:750;font-variant-numeric:tabular-nums; }
table{ border-collapse:collapse; }
th{ color:var(--text-secondary);font-weight:600;background:var(--bg-secondary); }
th,td{ border-bottom:1px solid var(--border); }

#memorySection h2,#memoryFormSection h2,#memoryDetailSection h2{ border-color:var(--memory); }
#memorySection .section-heading-row button,#memoryFormSection #memorySaveButton,#memoryDetailSection .detail-actions>button:first-child{ background:var(--memory); }
.memory-card{ border-color:var(--border);border-radius:var(--radius-card);background:var(--bg-secondary); }
.memory-card:hover{ border-color:rgba(236,72,153,.5); }
.memory-heart{ color:var(--text-main);background:rgba(11,13,16,.76); }
.memory-heart.active{ color:var(--favorite); }
.memory-category-badge{ border-color:rgba(236,72,153,.45);background:rgba(236,72,153,.1);color:#F9A8D4;border-radius:999px; }
.memory-detail-meta dd span{
    display:inline-block;margin:2px;padding:4px 8px;border-radius:999px;
    background:rgba(236,72,153,.1);color:#F9A8D4;font-size:12px;
}
.memory-detail-heading>span{ color:var(--favorite); }
.memory-preview-item,.memory-detail-gallery img{ border-radius:var(--radius-control);background:var(--bg-main); }
#memoryDetailFavoriteButton{ border-color:rgba(251,191,36,.45);background:rgba(251,191,36,.1);color:var(--favorite); }

.bottom-nav{
    gap:4px;padding:7px;border:1px solid var(--border);border-radius:18px;
    background:rgba(21,24,29,.94);box-shadow:0 10px 30px rgba(0,0,0,.28);
}
.bottom-nav-item{
    min-height:54px;border:0;background:transparent;color:var(--text-secondary);
    transition:color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast);
}
.bottom-nav-item:hover{ background:transparent; }
.bottom-nav-item.active{ background:var(--bg-secondary);color:var(--text-main); }
.bottom-nav-item[data-nav="playSection"].active{ color:var(--play); }
.bottom-nav-item[data-nav="counterSection"].active{ color:var(--counter); }
.bottom-nav-item[data-nav="analysisSection"].active{ color:var(--analysis); }
.bottom-nav-label{ font-weight:650; }
.inline-message.success{ color:#86EFAC; }
.inline-message.error{ color:#FCA5A5; }

@media(max-width:430px){
    body{ padding:10px 10px 104px; }
    .card{ padding:16px;margin-bottom:12px; }
    .menu-card{ min-height:106px;padding:16px 6px; }
    .menu-card .menu-icon{ font-size:31px;margin-bottom:7px; }
    .shop-summary-stat{ gap:8px; }
    .shop-summary-stat strong{ font-size:19px; }
    .memory-grid{ gap:9px; }
    .memory-card-body{ padding:9px; }
}
@media(max-width:390px){
    h1{ font-size:24px; }
    .home-grid{ gap:8px!important; }
    .bottom-nav-label{ font-size:9px; }
    .asset-grid{ grid-template-columns:1fr 1fr; }
}
@media(max-width:375px){
    .card{ padding:14px; }
    .menu-card{ min-height:100px; }
    .menu-title{ font-size:13px; }
    .bottom-nav{ width:calc(100% - 16px); }
}
@media(prefers-reduced-motion:reduce){
    *,*::before,*::after{ scroll-behavior:auto!important;transition:none!important; }
}

/* Legal, support and account controls */
.network-status-banner{
    position:fixed;
    inset:0 0 auto;
    z-index:12000;
    padding:10px 16px;
    background:#7F1D1D;
    color:#FEE2E2;
    text-align:center;
    font-size:13px;
    font-weight:700;
}
.network-status-banner[hidden]{ display:none; }
.auth-legal-links{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:6px 12px;
    margin-top:18px;
    padding-top:14px;
    border-top:1px solid var(--border);
}
.auth-terms-check{
    display:flex;
    align-items:flex-start;
    gap:8px;
    margin-top:12px;
    font-size:12px;
    line-height:1.5;
}
.auth-terms-check input{ width:auto;min-height:auto;margin:3px 0 0; }
.auth-legal-links .legal-link-button,
.auth-legal-links a{
    width:auto;
    min-height:36px;
    margin:0;
    padding:5px;
    border:0;
    background:transparent;
    color:var(--text-secondary);
    font-size:12px;
    font-weight:600;
    text-decoration:underline;
    box-shadow:none;
}
.app-footer{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    padding:10px 0 24px;
    color:var(--text-secondary);
}
.app-footer button{
    width:auto;
    min-height:40px;
    padding:6px 10px;
    border:0;
    background:transparent;
    color:var(--text-secondary);
    font-size:12px;
    text-decoration:underline;
}
.settings-link-list{ display:grid;gap:10px;margin:18px 0; }
.settings-contact-link{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:10px 14px;
    border:1px solid var(--border);
    border-radius:var(--radius-control);
    background:var(--bg-secondary);
    color:var(--text-main)!important;
    font-weight:700;
    text-decoration:none;
}
.danger-zone{
    margin-top:26px;
    padding:16px;
    border:1px solid rgba(239,68,68,.32);
    border-radius:var(--radius-card);
    background:rgba(127,29,29,.1);
}
.danger-zone h3{ color:#FCA5A5; }
.account-delete-check{ display:flex;align-items:flex-start;gap:9px;margin:8px 0 16px; }
.account-delete-check input{ width:auto;min-height:auto;margin:4px 0 0; }
.danger-button{ background:var(--danger);color:white; }
.legal-modal{
    position:fixed;
    inset:0;
    z-index:11000;
    place-items:center;
    padding:16px;
    background:rgba(0,0,0,.82);
    backdrop-filter:blur(8px);
}
.legal-card{
    position:relative;
    width:min(100%,620px);
    max-height:88vh;
    overflow:auto;
    padding:26px 20px;
    border:1px solid var(--border);
    border-radius:var(--radius-card);
    background:var(--bg-card);
    box-shadow:0 24px 70px rgba(0,0,0,.42);
}
.legal-close{
    position:sticky;
    top:0;
    float:right;
    width:44px;
    min-height:44px;
    padding:0;
    border:1px solid var(--border);
    border-radius:50%;
    background:var(--bg-secondary);
}
.legal-document h2{ border-color:var(--shop-register); }
.legal-document h3{ margin:24px 0 6px;font-size:16px; }
.legal-document p{ color:var(--text-secondary);line-height:1.8; }
.legal-updated{ font-size:12px; }
.modal-open{ overflow:hidden; }
