:root{--ink: #101b22;--paper: #f4f5f7;--card: #ffffff;--accent: #1c6e8c;--accent-soft: #d8eaf1;--red: #c12027;--green: #1e7d3f;--green-soft: #dcefe2;--muted: #66727a;--line: #e2e6e9;--danger: #b3261e}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.shell{min-height:100dvh;display:flex;flex-direction:column}.topbar{background:var(--ink);color:#fff;padding:calc(env(safe-area-inset-top) + 12px) 16px 12px;position:sticky;top:0;z-index:10;border-bottom:3px solid var(--red)}.brand-lockup{display:flex;flex-direction:column;align-items:flex-start;width:100%;max-width:608px;margin:0 auto}.brand-mark{height:24px;width:auto;display:block}.brand-product{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.4em;color:#ffffffd9;margin-top:3px;padding-left:2px}.content{flex:1;width:100%;max-width:640px;margin:0 auto;padding:16px;padding-bottom:calc(env(safe-area-inset-bottom) + 88px)}.center{display:flex;align-items:center;justify-content:center;min-height:50dvh;flex-direction:column}.muted{color:var(--muted)}.small{font-size:13px}.notice{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;text-align:center}.notice h2{margin:0 0 8px}.spinner{width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:10px;padding:10px 16px;cursor:pointer}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn-primary:disabled{opacity:.5}.btn-ghost{background:transparent;border:none;color:var(--accent);font-weight:600}.btn-big{width:100%;padding:15px;font-size:17px;border-radius:12px}.tabbar{position:fixed;bottom:0;left:0;right:0;max-width:640px;margin:0 auto;display:flex;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:10}.tab{flex:1;font:inherit;font-size:12px;border:none;background:none;color:var(--muted);padding:8px 0 10px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer}.tab.active{color:var(--accent);font-weight:600}.tab-icon{font-size:20px}.job-list{display:flex;flex-direction:column;gap:12px}.job-card{font:inherit;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;cursor:pointer;display:flex;flex-direction:column;gap:6px}.job-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.job-title{font-weight:600;font-size:16px}.badge{font-size:12px;font-weight:700;border-radius:999px;padding:4px 10px;white-space:nowrap}.badge-open{background:var(--green-soft);color:var(--green)}.badge-filled{background:var(--line);color:var(--muted)}.job-card-meta{display:flex;gap:12px;color:var(--muted);font-size:14px;flex-wrap:wrap}.job-card-applied{color:var(--green);font-size:13px;font-weight:600}.detail .back{padding-left:0;margin-bottom:4px}.detail-title{margin:0}.detail-site{margin:4px 0 16px;color:var(--muted)}.detail-grid{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:16px}.detail-row{display:flex;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line);font-size:15px}.detail-row:last-child{border-bottom:none}.detail-label{color:var(--muted)}.spots-open{color:var(--green);font-weight:600}.detail-summary{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:16px}.detail-summary h3{margin:0 0 8px;font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.detail-summary p{margin:0;white-space:pre-wrap}.detail-actions{margin-top:20px}.apply-state{text-align:center;padding:14px;border-radius:12px;background:var(--line);color:var(--muted);font-weight:600}.apply-state.ok{background:var(--green-soft);color:var(--green)}.apply-msg{text-align:center;margin-top:10px}.apply-msg.ok{color:var(--green)}.apply-msg.err{color:var(--danger)}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.cal-head h2{margin:0;font-size:18px}.cal-head .btn-ghost{font-size:24px;padding:4px 14px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-dow-cell{text-align:center;font-size:11px;color:var(--muted);padding:4px 0}.cal-cell{font:inherit;border:none;background:var(--card);border-radius:8px;min-height:58px;padding:4px 2px 2px;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer}.cal-cell.pad{background:transparent;cursor:default}.cal-cell.today .cal-daynum{background:var(--ink);color:#fff;border-radius:50%}.cal-cell.selected{outline:2px solid var(--accent)}.cal-daynum{font-size:13px;width:22px;height:22px;line-height:22px;text-align:center}.cal-bars{display:grid;grid-auto-rows:5px;gap:2px;width:100%}.cal-bar{height:5px;width:100%;display:block}.cal-bar.bar-start{border-radius:3px 0 0 3px}.cal-bar.bar-end{border-radius:0 3px 3px 0}.cal-bar.bar-start.bar-end{border-radius:3px}.cal-bar.open{background:var(--accent)}.cal-bar.mine{background:var(--green)}.cal-bar.mine-pending{background:repeating-linear-gradient(90deg,var(--green),var(--green) 3px,var(--green-soft) 3px,var(--green-soft) 6px)}.cal-legend{display:flex;gap:16px;justify-content:center;margin:10px 0 16px;font-size:12px;color:var(--muted)}.dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}.dot.open{background:var(--accent)}.dot.mine{background:var(--green)}.dot.mine-pending{background:repeating-linear-gradient(90deg,var(--green),var(--green) 2px,var(--green-soft) 2px,var(--green-soft) 4px)}.cal-daylist h3{font-size:15px;margin:0 0 8px}.daylist-item{font:inherit;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:8px;display:flex;justify-content:space-between;cursor:pointer}.daylist-item:disabled{cursor:default;opacity:.8}.daylist-title{font-weight:600}.daylist-kind{color:var(--muted);font-size:13px}.daylist-item.mine .daylist-kind,.daylist-item.mine-pending .daylist-kind{color:var(--green);font-weight:600}.admin-head{margin:0 0 12px;font-size:18px}.admin-deal{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:14px}.admin-deal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.admin-deal-title{font-weight:600}.admin-deal-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-top:2px;padding-bottom:10px;border-bottom:1px solid var(--line)}.applicant{padding:12px 0;border-bottom:1px solid var(--line)}.applicant:last-child{border-bottom:none;padding-bottom:0}.applicant-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.applicant-name{font-weight:600}.status-pill{font-size:11px;font-weight:700;border-radius:999px;padding:3px 9px;white-space:nowrap;background:var(--line);color:var(--muted)}.st-applied{background:var(--accent-soft);color:var(--accent)}.st-accepted,.st-offer{background:#fdf0d5;color:#8a5a00}.st-confirmed{background:var(--green-soft);color:var(--green)}.st-declined{background:#fbe3e1;color:var(--danger)}.applicant-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-top:3px}.tag-emp{color:var(--accent);font-weight:600}.applicant-contact{display:flex;gap:6px;margin-top:8px}.btn.sm{padding:5px 12px;font-size:13px;border:1px solid var(--line);background:var(--card);text-decoration:none}.profile h2{margin-top:0}.field{margin-bottom:16px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}.field input{font:inherit;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card)}.field input:disabled{color:var(--muted);background:var(--paper)}.segmented{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card)}.segmented button{font:inherit;flex:1;border:none;background:none;padding:12px;cursor:pointer;color:var(--muted)}.segmented button.active{background:var(--accent);color:#fff;font-weight:600}.signout{display:block;margin:24px auto 0;color:var(--danger)}
