: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}
