:root{font-family:Avenir Next,Trebuchet MS,Verdana,sans-serif;color:#14203a;background:#f8f3e9;--blue: #2563eb;--blue-deep: #173a93;--blue-ink: #0f286f;--blue-soft: #eaf2ff;--paper: #fffcf6;--paper-deep: #f1e7d7;--ink: #14203a;--muted: #657089;--line: #d8e2f7;--danger: #c93418;--amber: #df8a12;--green: #187a3d;--shadow: 0 18px 50px rgba(24, 42, 91, .14)}*{box-sizing:border-box}body{margin:0;min-width:320px;font-size:15px;line-height:1.45;background:radial-gradient(circle at 8% -10%,rgba(37,99,235,.18),transparent 30%),radial-gradient(circle at 95% 0%,rgba(23,58,147,.12),transparent 28%),linear-gradient(135deg,#fffcf6,#f6efe3 48%,#edf4ff)}button,input,select,textarea{font:inherit}button{transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}button:not(:disabled):hover{transform:translateY(-1px)}button:not(:disabled):active{transform:translateY(0)}.page{width:min(1500px,100%);margin:0 auto;padding:clamp(16px,2.4vw,32px)}.loading-page,.auth-page{min-height:100vh;display:grid;place-items:center}.loading-page{align-content:center;gap:14px;color:var(--blue-deep);font-weight:700}.loading-mark{width:76px;height:auto}.header-panel{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:18px;margin-bottom:18px;padding:18px;border:1px solid rgba(37,99,235,.18);border-radius:28px;background:linear-gradient(135deg,#fffcf6f0,#eaf2ffeb);box-shadow:var(--shadow)}.header-brand{display:flex;align-items:center;gap:16px;min-width:0}.header-mark{width:56px;height:62px;object-fit:contain;flex:0 0 auto}.header-wordmark{width:min(310px,48vw);height:auto;display:block}.header-brand p{margin:4px 0 0;color:var(--blue-deep);font-size:13px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.header-status{display:flex;align-items:center;gap:9px;padding:10px 14px;border-radius:999px;background:var(--blue-deep);color:#fff;font-weight:700;white-space:nowrap}.live-dot{width:9px;height:9px;border-radius:50%;background:#77ffae;box-shadow:0 0 0 5px #77ffae2e}.auth-card{width:min(430px,100%);padding:30px;border-radius:30px;border:1px solid rgba(37,99,235,.16);background:#fffcf6f5;box-shadow:var(--shadow)}.auth-brand{display:grid;justify-items:center;gap:10px;margin-bottom:20px}.auth-mark{width:64px;height:auto}.auth-wordmark{width:min(260px,100%);height:auto}.auth-card h1{margin:0;font-size:clamp(28px,4vw,38px);line-height:1;color:var(--ink)}.auth-card p{margin:10px 0 18px;color:var(--muted);line-height:1.45}.public-page{min-height:100vh;display:grid;place-items:center}.public-card{width:min(760px,100%);padding:clamp(24px,4vw,44px);border:1px solid rgba(37,99,235,.16);border-radius:34px;background:#fffcf6f5;box-shadow:var(--shadow)}.public-brand{display:grid;justify-items:start;gap:10px;margin:12px 0 28px}.public-home-link{display:inline-flex;color:var(--blue-deep);font-weight:700;text-decoration:none}.public-card h1{margin:0 0 8px;font-size:clamp(34px,6vw,58px);line-height:.95;letter-spacing:-.04em}.public-card h2{margin:26px 0 8px;font-size:18px;color:var(--blue-deep)}.public-card p{margin:0;color:var(--muted);line-height:1.65}.public-updated{margin-bottom:18px!important;color:var(--blue-deep)!important;font-weight:700}.auth-form,.campaign-form{display:flex;flex-direction:column;gap:10px}.input{width:100%;border:1px solid var(--line);border-radius:16px;padding:12px 14px;font-size:15px;color:var(--ink);background:#fff;outline:none}.input:focus{border-color:var(--blue);box-shadow:0 0 0 4px #2563eb1f}.quick-stamp-panel,.campaign-panel{position:relative;overflow:hidden;border:1px solid rgba(37,99,235,.14);border-radius:24px;padding:18px;margin-bottom:16px;background:#fffcf6e6;box-shadow:0 10px 30px #14203a14}.quick-stamp-panel{padding:12px 14px}.quick-stamp-panel:before,.campaign-panel:before{content:"";position:absolute;inset:0 auto 0 0;width:7px;background:var(--blue)}.quick-stamp-panel h2,.campaign-panel h2{margin:0 0 5px;color:var(--ink);font-size:19px;letter-spacing:-.02em}.quick-stamp-panel p,.campaign-panel p{margin:0 0 12px;color:var(--muted)}.scan-row,.preset-row,.campaign-row,.campaign-history-top,.campaign-history-meta,.pickup-row,.order-header,.order-modal-header{display:flex}.scan-row{justify-content:center;margin:2px 0 10px}.scan-hint,.preset-help,.campaign-empty{color:var(--muted);font-size:13px}.scan-primary-btn{width:min(340px,100%);border:0;border-radius:18px;padding:13px 18px;background:var(--blue-deep);color:#fff;font-size:clamp(16px,1.6vw,20px);font-weight:700;cursor:pointer;box-shadow:0 18px 36px #173a933d}.scan-primary-btn.scanning{background:var(--danger);box-shadow:0 18px 36px #c9341838}.scan-video{width:100%;max-width:420px;height:0;border-radius:18px;background:var(--blue-soft);display:block;margin:0 auto 10px}.scan-video.active{height:210px;border:1px solid var(--line)}.quick-stamp-form{display:grid;grid-template-columns:1fr;gap:9px;align-items:stretch;max-width:560px;margin:0 auto}.quick-stamp-quantity{display:flex;flex-direction:column;gap:8px}.preset-row{justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}.preset-btn,.stamp-open-btn,.broadcast-open-btn,.signout-btn,.close-btn{border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--blue-deep);font-weight:700;cursor:pointer}.stamp-open-btn{width:fit-content;padding:14px 22px;border-radius:18px;background:var(--blue);border-color:var(--blue);color:#fff;font-size:17px;box-shadow:0 12px 24px #2563eb33}.broadcast-open-btn{width:fit-content;padding:9px 13px;background:transparent;border-color:#173a9340;color:var(--blue-deep);box-shadow:none;font-size:13px}.preset-btn{min-width:44px;padding:7px 10px}.preset-btn.active{background:var(--blue-deep);border-color:var(--blue-deep);color:#fff;box-shadow:0 10px 22px #173a9338}.other-btn{min-width:72px}.quick-stamp-count{text-align:center;max-width:160px}.campaign-header{display:flex;justify-content:space-between;gap:16px}.campaign-textarea{min-height:92px;resize:vertical}.campaign-language-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.campaign-language-card{display:flex;flex-direction:column;gap:9px;min-width:0;border:1px solid rgba(37,99,235,.14);border-radius:18px;padding:12px;background:#ffffffb8}.campaign-language-card legend{display:flex;align-items:baseline;justify-content:space-between;gap:10px;width:100%;padding:0 2px 8px;color:var(--ink);font-weight:800}.campaign-language-card legend small{color:var(--muted);font-size:11px;font-weight:600}.campaign-row{align-items:end;justify-content:space-between;gap:12px}.campaign-audience{display:flex;flex-direction:column;gap:6px;color:var(--ink);font-size:13px;font-weight:700}.campaign-select{min-width:220px}.campaign-send-btn,.quick-stamp-btn{width:min(220px,100%);min-width:0;margin-top:0;justify-self:center}.campaign-history{margin-top:18px}.campaign-history h3{margin:0 0 10px;color:var(--ink);font-size:15px}.campaign-history-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.campaign-history-card{border:1px solid var(--line);border-radius:18px;padding:12px;background:#fff}.campaign-history-card p{margin:8px 0;color:#44516c;line-height:1.4}.campaign-history-top,.campaign-history-meta{justify-content:space-between;gap:10px}.campaign-history-top{align-items:baseline}.campaign-history-top span,.campaign-history-meta span{color:var(--muted);font-size:12px;white-space:nowrap}.campaign-history-meta{margin-top:10px;align-items:center}.kanban-grid{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:14px;align-items:stretch}.kanban-column{min-height:58vh;padding:10px;border:1px solid rgba(37,99,235,.13);border-radius:24px;background:color-mix(in srgb,var(--blue-soft) 48%,var(--paper) 52%)}.kanban-column-header{align-items:center;justify-content:space-between;margin-bottom:10px;padding:8px 8px 4px}.kanban-column-header h2{margin:0;color:var(--blue-deep);font-size:12px;font-weight:700;letter-spacing:.16em}.kanban-column-header span{min-width:30px;text-align:center;background:var(--blue-deep);color:#fff;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700}.kanban-list{display:flex;flex-direction:column;gap:10px;min-height:120px}.draggable-card{cursor:grab}.draggable-card:active{cursor:grabbing}.order-card{position:relative;overflow:hidden;border:1px solid rgba(23,58,147,.12);border-top:6px solid var(--blue);border-radius:22px;padding:14px;background:#fff;box-shadow:0 10px 26px #14203a17;cursor:pointer}.order-card:hover{box-shadow:0 16px 32px #14203a24}.order-card.urgency-overdue{border-top-color:var(--danger);box-shadow:0 18px 36px #c9341833}.order-card.urgency-urgent{border-top-color:var(--amber);box-shadow:0 16px 32px #df8a122e}.order-card.urgency-soon{border-top-color:var(--blue)}.order-card.status-picked_up{padding:10px;border-top-width:3px;opacity:.72;box-shadow:none}.order-card.status-picked_up:hover{opacity:.9;box-shadow:0 8px 20px #14203a14}.order-header{justify-content:space-between;align-items:flex-start;gap:8px}.customer-name{margin:0;color:var(--ink);font-size:clamp(21px,1.7vw,26px);line-height:1.08;letter-spacing:-.025em;font-weight:700}.order-card.status-picked_up .customer-name{font-size:17px;letter-spacing:-.01em}.status{padding:5px 9px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.06em;white-space:nowrap}.order-card.status-picked_up .status{font-size:9px;padding:4px 7px}.status.new{background:#fff4df;color:#8b4c00}.status.preparing{background:var(--blue-soft);color:var(--blue-deep)}.status.ready{background:#e8f9ea;color:var(--green)}.status.picked_up{background:#edf0f6;color:#566073}.pickup{margin:8px 0 10px;color:#4d5a74;font-weight:700}.pickup-row{align-items:center;justify-content:space-between;gap:8px;margin:8px 0 10px}.pickup-row .pickup{margin:0}.order-card.status-picked_up .pickup-row{margin:6px 0}.order-card.status-picked_up .pickup{font-size:12px;font-weight:600}.urgency-badge{border-radius:999px;padding:5px 8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.urgency-badge.overdue{background:var(--danger);color:#fff}.urgency-badge.urgent{background:#fff1dc;color:#9a5d0c}.urgency-badge.soon{background:var(--blue-soft);color:var(--blue-deep)}.order-items-list,.modal-items-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.order-item-row,.modal-item-row{display:flex;align-items:center;gap:9px;border-radius:14px;padding:9px 10px;background:#f5f8ff}.order-card.status-picked_up .order-items-list{gap:5px}.order-card.status-picked_up .order-item-row{padding:6px 8px;border-radius:10px;background:#f7f9fd}.item-qty{min-width:38px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--blue-deep);text-align:center;font-weight:700;font-size:13px}.order-card.status-picked_up .item-qty{min-width:32px;font-size:12px}.item-name{color:var(--ink);font-size:clamp(16px,1.1vw,19px);font-weight:650;line-height:1.24}.order-card.status-picked_up .item-name{font-size:14px;font-weight:600}.advance-btn{width:100%;margin-top:10px;padding:12px 14px;border:none;border-radius:15px;background:var(--blue);color:#fff;font-weight:700;cursor:pointer;box-shadow:0 12px 22px #2563eb38}.order-card.status-picked_up .advance-btn{display:none}.advance-btn:disabled{cursor:default;opacity:.55;box-shadow:none}.signout-btn,.close-btn{width:fit-content;padding:10px 14px}.signout-btn:hover,.close-btn:hover,.preset-btn:hover{border-color:var(--blue)}.error-text,.success-text{margin:12px 0 0;border-radius:14px;padding:10px 12px;font-weight:700}.error-text{background:#fff0ec;color:var(--danger)}.success-text{background:#eaf9ee;color:var(--green)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px;background:#0c183a8f;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.order-modal{width:min(620px,100%);border:1px solid rgba(255,255,255,.42);border-radius:28px;padding:18px;background:var(--paper);box-shadow:0 30px 80px #040c2257}.campaign-modal,.stamp-modal{width:min(680px,100%);max-height:min(780px,92vh);overflow:auto;border:1px solid rgba(255,255,255,.42);border-radius:28px;padding:18px;background:var(--paper);box-shadow:0 30px 80px #040c2257}.campaign-modal .order-modal-header,.stamp-modal .order-modal-header{margin-bottom:14px}.campaign-modal h2,.stamp-modal h2{margin:0;color:var(--ink);font-size:clamp(28px,4vw,40px);letter-spacing:-.025em}.campaign-modal .order-modal-header p,.stamp-modal .order-modal-header p{margin:6px 0 0;color:var(--muted);line-height:1.4}.order-modal-header{align-items:center;justify-content:space-between;gap:10px}.order-modal-header h2{margin:0;color:var(--ink);font-size:clamp(28px,4vw,42px);letter-spacing:-.025em}@media (max-width: 1180px){.kanban-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.header-panel{grid-template-columns:1fr auto}.header-status,.stamp-open-btn,.broadcast-open-btn{grid-column:1 / -1;width:fit-content}}@media (max-width: 760px){.page{padding:14px}.header-panel,.campaign-row,.quick-stamp-form{grid-template-columns:1fr}.header-panel{display:flex;flex-direction:column;align-items:flex-start;border-radius:22px}.header-wordmark{width:min(240px,70vw)}.kanban-grid{grid-template-columns:1fr}.campaign-row{flex-direction:column;align-items:stretch}.campaign-language-grid{grid-template-columns:1fr}.campaign-select,.campaign-send-btn,.stamp-open-btn,.broadcast-open-btn,.quick-stamp-btn{min-width:0;width:100%}.scan-row{flex-wrap:wrap}}
