:root{--color-bg:#f4f5f7;--color-surface:#fff;--color-text:#1f2933;--color-muted:#6b7280;--color-primary:#06c755;--color-primary-dark:#05a648;--color-danger:#e02424;--color-secondary:#e5e7eb;--color-border:#e2e5ea;--radius:10px;color:var(--color-text);background-color:var(--color-bg);font-family:system-ui,-apple-system,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0;padding:0}body{background:var(--color-bg)}h1{margin:0 0 .75rem;font-size:1.4rem}h2{margin:1rem 0 .5rem;font-size:1.05rem}p{margin:.35rem 0;line-height:1.5}a{color:var(--color-primary-dark);text-decoration:none}.app-shell{background:var(--color-bg);flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;display:flex}.app-header{z-index:10;background:var(--color-primary);color:#fff;padding:.85rem 1rem;position:sticky;top:0}.app-title{font-weight:700}.app-main{flex:1;padding:1rem 1rem 5rem}.page{flex-direction:column;gap:.5rem;display:flex}.page-header{justify-content:space-between;align-items:center;display:flex}.navbar{background:var(--color-surface);border-top:1px solid var(--color-border);width:100%;max-width:480px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-item{text-align:center;color:var(--color-muted);flex:1;padding:.75rem 0;font-size:.85rem}.nav-item.active{color:var(--color-primary-dark);font-weight:700}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin:.5rem 0;padding:.9rem}.status-card{justify-content:space-between;align-items:center;gap:1rem;display:flex}.status-card .label{color:var(--color-muted);margin-bottom:.25rem;font-size:.8rem;display:block}.btn{border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;padding:.6rem 1rem;font-size:.95rem;font-weight:600;transition:opacity .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--color-primary);color:#fff}.btn-danger{background:var(--color-danger);color:#fff}.btn-secondary{background:var(--color-secondary);color:var(--color-text)}.btn-lg{padding:.85rem 1.25rem;font-size:1.05rem}.btn-block{width:100%;display:flex}.btn-line{width:100%}.btn-row{flex-wrap:wrap;gap:.5rem;display:flex}.dashboard-links{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.ride-card-header{gap:.5rem;margin-bottom:.5rem;display:flex}.ride-card-actions{gap:.5rem;margin-top:.5rem;display:flex}.badge{background:var(--color-secondary);color:var(--color-text);border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:700;display:inline-block}.badge-taxi{color:#1e40af;background:#dbeafe}.badge-daiko{color:#166534;background:#dcfce7}.status-requested{color:#92400e;background:#fef3c7}.status-completed,.status-driver-available{color:#166534;background:#dcfce7}.status-canceled,.status-driver-offline{color:#991b1b;background:#fee2e2}.status-driver-busy{color:#92400e;background:#fef3c7}.map-placeholder{border-radius:var(--radius);color:var(--color-muted);text-align:center;background:#eef0f3;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;padding:1rem;display:flex}.muted{color:var(--color-muted)}.error{color:var(--color-danger);font-weight:600}.notice{color:#92400e;border-radius:var(--radius);background:#fef3c7;padding:.5rem .75rem;font-size:.85rem}.greeting{color:var(--color-muted)}.login-page{text-align:center;gap:1rem;padding-top:3rem}
