:root{color:#1f2328;--primary:#1a73e8;background:#fafafa;font-family:system-ui,Noto Sans TC,Microsoft JhengHei,sans-serif}*{box-sizing:border-box}body{margin:0}.layout{flex-direction:column;height:100dvh;display:flex}.map{background:#e8eaed;flex:0 0 45dvh;position:relative}.map-msg{margin:0;padding:16px}.panel{flex:1;width:100%;max-width:640px;margin:0 auto;padding:12px 16px 24px;overflow-y:auto}.row{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}.label{min-width:2.5em;font-weight:600}.value{color:#444;min-width:4em}input[name=brand]{border:1px solid #c4c7c5;border-radius:8px;flex:1;min-width:8em;padding:8px;font-size:16px}button{cursor:pointer;background:#fff;border:1px solid #c4c7c5;border-radius:8px;padding:8px 12px;font-size:15px}button:active{transform:scale(.97)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}h2{margin:16px 0 8px;font-size:17px}.hint{background:#e8f0fe;border-radius:8px;margin:0 0 8px;padding:8px 12px}.busy{color:var(--primary)}.msg,.error{color:#c5221f}.muted{color:#5f6368}.small{font-size:13px}.stores,.plan{margin:0;padding-left:0;list-style:none}.stores li label{border-bottom:1px solid #eee;align-items:center;gap:8px;padding:8px 0;display:flex}.stores input{width:20px;height:20px}.tag{color:#5f6368;white-space:nowrap;margin-left:auto;font-size:12px}.plan li{border-bottom:1px solid #eee;padding:10px 0}.nav{color:var(--primary);margin-top:6px;font-weight:600;display:inline-block}.pin{color:#fff;border:2px solid #fff;border-radius:13px;place-items:center;min-width:26px;height:26px;padding:0 6px;font-size:13px;font-weight:700;display:grid;box-shadow:0 1px 3px #0006}.pin-start{background:#188038}.pin-end{background:#c5221f}.pin-store{background:var(--primary)}.pin-storeOff{background:#9aa0a6}.badge{color:#5f6368;background:#f1f3f4;border-radius:6px;padding:1px 6px;font-size:12px;font-weight:400;display:inline-block}.badge.ok{color:#137333;background:#e6f4ea}.badge.warn{color:#b06000;background:#fef7e0}.badge.bad{color:#c5221f;background:#fce8e6}.ok-text{color:#137333}input[type=datetime-local]{border:1px solid #c4c7c5;border-radius:8px;padding:6px 8px;font-size:16px}.skipped{background:#fce8e6;border-radius:8px;margin:8px 0;padding:8px 12px}.skipped ul{margin:4px 0 0;padding-left:20px}.topbar{color:#5f6368;background:#fff;border-bottom:1px solid #eee;flex:none;justify-content:flex-end;align-items:center;gap:8px;padding:4px 12px;font-size:13px;display:flex}.topbar button{padding:2px 8px;font-size:13px}.gate{text-align:center;max-width:420px;margin:0 auto;padding:48px 16px}.line-login{color:#fff;background:#06c755;border-radius:8px;margin:16px 0 8px;padding:12px 28px;font-size:17px;font-weight:700;text-decoration:none;display:inline-block}.code code{word-break:break-all;-webkit-user-select:all;user-select:all;background:#f1f3f4;border-radius:6px;padding:8px 12px;display:inline-block}.topbar a{color:var(--primary);margin-right:auto;text-decoration:none}.admin{max-width:640px;margin:0 auto;padding:16px}.admin h1{font-size:20px}.card{background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:12px}.switch-row{align-items:flex-start;gap:12px;display:flex}.switch-row input{width:22px;height:22px;margin-top:2px}.users{margin:0;padding:0;list-style:none}.user{border-bottom:1px solid #eee;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0;display:flex}.user img,.user .avatar{background:#e8eaed;border-radius:50%;flex:0 0 40px;width:40px;height:40px}.user .info{flex:1;min-width:10em}.user .actions{gap:6px;display:flex}.warn-text{color:#b06000}.settings{max-width:560px;margin:0 auto;padding:16px}.settings h1{font-size:20px}.settings .card{margin:12px 0}.field{flex-direction:column;gap:6px;display:flex}.field .name{font-weight:700}.field .hint{color:#5f6368;background:0 0;padding:0;font-size:13px;display:block}.field input[type=number],.field select{border:1px solid #c4c7c5;border-radius:8px;width:8em;padding:8px;font-size:16px}.radio{align-items:flex-start;gap:8px;padding:6px 0;display:flex}.radio input{width:20px;height:20px;margin-top:2px}.topbar a+a{margin-left:12px;margin-right:0}.plan .row{margin:0}.small-btn{margin-top:6px;padding:4px 10px;font-size:13px}.info{color:#202124;gap:4px;max-width:220px;font-size:14px;display:grid}.info a{color:#1a73e8}.trip-bar{border-bottom:1px solid #e0e0e0;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;padding-bottom:8px;display:flex}.trip-name{overflow-wrap:anywhere;flex:100%;min-width:0;font-weight:700}.trips{gap:8px;margin:0;padding:0;list-style:none;display:grid}.trips li{border:1px solid #e0e0e0;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;padding:8px;display:flex}.trips li.current{border-color:var(--primary)}.trips .link{text-align:left;color:var(--primary);overflow-wrap:anywhere;background:0 0;border:none;flex:100%;padding:0;font-weight:700}.store-extra{align-items:center;gap:6px;margin:4px 0 0 26px;display:flex}.store-extra .note{flex:auto;min-width:0;padding:4px 6px;font-size:13px}.gate{place-items:center;max-width:none;min-height:100vh;padding:24px 16px;display:grid}.gate-card{text-align:center;background:#fff;border:1px solid #e3e6ea;border-radius:20px;width:100%;max-width:380px;padding:32px 24px 24px;box-shadow:0 12px 32px -20px #0f172a4d}.gate-icon{background:linear-gradient(135deg,#e0ecff,#dcfce7);border-radius:18px;place-items:center;width:64px;height:64px;margin:0 auto 12px;font-size:34px;display:grid}.gate-card h1{margin:0 0 8px;font-size:1.4rem}.gate-intro{color:#5f6368;margin:0 0 18px;font-size:.95rem;line-height:1.6}.gate-status{color:#5f6368;margin:0 0 14px;font-size:.92rem}.gate-status:before{content:"✓ ";color:#188038}.gate-status.is-error{color:#b45309}.gate-status.is-error:before{content:"⚠ ";color:#b45309}.gate-login{color:#fff;background:#2563eb;border-radius:12px;padding:13px 18px;font-size:1rem;font-weight:600;text-decoration:none;display:block}.gate-login:active{transform:translateY(1px)}.gate-note{color:#80868b;margin:14px 0 0;font-size:.78rem}.gate-last{color:#5f6368;margin:-6px 0 12px;font-size:.9rem}.gate-switch{color:#202124;border:1px solid #dadce0;border-radius:12px;margin-top:10px;padding:11px 18px;font-size:.95rem;text-decoration:none;display:block}.gate-switch:hover{background:#f8f9fa}.gate-note summary{cursor:pointer;list-style:none}.gate-note summary::-webkit-details-marker{display:none}.gate-info{color:#2563eb;margin-left:4px}.gate-note p{margin:6px 0 0}.gate-sso-out{color:#5f6368;margin-top:14px;font-size:.85rem;text-decoration:underline;display:inline-block}
