:root{color-scheme:light;--bg:#eef2f7;--card:#ffffff;--line:#d6ddea;--line-strong:#93a4bf;--text:#101826;--muted:#4a5c78;--accent:#0f4c81;--accent-weak:#e8f1ff;--danger-bg:#fff2f2;--danger-line:#f7b5b5;--success-bg:#f1fbf3;--success-line:#9ed8ae;--radius:12px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:Noto Sans JP,Hiragino Sans,Yu Gothic UI,Yu Gothic,sans-serif;background:radial-gradient(circle at 100% 0,#f9fbff,var(--bg));color:var(--text);line-height:1.6;letter-spacing:.01em;min-height:100vh}a{color:inherit}h1,h2,h3,h4,h5,h6{margin:0;line-height:1.3}p{margin:0}.loading-view{place-content:center;grid-gap:8px;gap:8px}.loading-view,.login-shell{min-height:100vh;display:grid}.login-shell{place-content:center;padding:16px}.login-panel{width:min(460px,92vw)}.login-panel h1{margin-bottom:8px}.login-lead{color:var(--muted);margin-bottom:10px}.login-error{color:#b42318;font-size:13px}.page-shell{width:100%;padding:16px}.line-portal{max-width:980px;margin:0 auto}.portal-head{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:flex-start}.portal-tabs{display:inline-flex;gap:8px;border:1px solid var(--line);border-radius:10px;padding:4px;background:#f5f8fd}.portal-tab{border:0;background:transparent;color:var(--muted);font-size:13px;font-weight:700;padding:8px 12px;border-radius:8px;cursor:pointer}.portal-tab.active{background:var(--card);color:var(--accent);box-shadow:inset 0 0 0 1px var(--line)}.mypage-portal{max-width:820px}.mypage-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:6px;gap:6px;padding:5px;border:1px solid var(--line);border-radius:12px;background:#f5f8fd}.mypage-tabs button{min-height:48px;padding:10px 6px;border:0;border-radius:8px;color:var(--muted);background:transparent;font:inherit;font-size:14px;font-weight:700;cursor:pointer}.mypage-tabs button.active{background:var(--accent);color:white}.mypage-tabs button span{display:inline-block;margin-left:6px;font-size:12px}.mypage-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.mypage-content{margin-top:24px}.mypage-content>h2{margin-bottom:8px}.mypage-card-heading,.mypage-card>header,.mypage-section-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.mypage-section-head{align-items:flex-start;margin-bottom:14px}.mypage-section-head h2{margin-bottom:8px}.mypage-filter{display:grid;grid-gap:4px;gap:4px;font-size:13px}.mypage-filter select{width:100%;font-size:16px;min-height:42px}.mypage-cards{display:grid;grid-gap:16px;gap:16px;margin-top:16px}.mypage-card{min-width:0;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--card);overflow-wrap:anywhere}.mypage-card h3{font-size:18px;flex:1 1 180px;min-width:0}.mypage-next-job{border-left:4px solid var(--accent);background:linear-gradient(120deg,#f2f7fd,#fff 65%)}.mypage-eyebrow{color:var(--accent);font-size:13px;font-weight:700;margin-bottom:12px}.mypage-workday{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.mypage-workday p{margin-top:7px}.mypage-status{display:inline-flex;align-items:center;border-radius:6px;padding:4px 10px;font-size:13px;font-weight:700;white-space:nowrap;background:#eef2f7;color:#405065}.mypage-status-pending{background:#e8f1ff;color:#174776}.mypage-status-hold{background:#fff3d6;color:#805000}.mypage-status-assigned{background:#e4f4ea;color:#175c38}.mypage-status-working{background:#daf4f4;color:#125e62}.mypage-status-rejected{background:#fceaea;color:#923737}.mypage-status-canceled{background:#eff0f2;color:#555e68}.mypage-meta{font-size:12px;color:var(--muted)}.mypage-empty{padding:26px 18px;background:#f5f8fd;border-radius:10px;color:var(--muted)}.mypage-facts{display:grid;grid-gap:10px;gap:10px;margin:18px 0 0}.mypage-facts>div{display:grid;grid-template-columns:110px minmax(0,1fr);grid-gap:10px;gap:10px}.mypage-facts dt{color:var(--muted);font-size:13px}.mypage-facts dd{margin:0;min-width:0}.mypage-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin:18px 0}.mypage-totals>div{display:grid;padding:16px;grid-gap:4px;gap:4px;border:1px solid var(--line);background:#f5f8fd;border-radius:10px}.mypage-totals span{color:var(--muted);font-size:13px}.mypage-totals strong{font-size:clamp(18px,3.5vw,26px);overflow-wrap:anywhere}.mypage-card summary{cursor:pointer;font-weight:700}@media (max-width:600px){.mypage-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.mypage-card{padding:16px}.mypage-facts>div{grid-template-columns:85px minmax(0,1fr)}.mypage-filter{width:100%}.mypage-portal .inline-2{grid-template-columns:minmax(0,1fr)}.mypage-portal .form input,.mypage-portal .form select,.mypage-portal .form textarea{max-width:100%;font-size:16px}}.app-shell{max-width:1600px;margin:0 auto;display:grid;grid-template-columns:280px minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.sidebar{position:-webkit-sticky;position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto;background:#132238;color:#eef4ff;border-radius:var(--radius);padding:18px;border:1px solid #1e3859}.sidebar h1{font-size:23px;margin-bottom:8px}.sidebar-lead{font-size:13px;color:#d0dff5}.auth-box{margin-top:12px;border:1px solid #2d4a71;border-radius:10px;padding:10px;background:#192f4d}.auth-name{font-weight:700;font-size:14px}.auth-meta{margin-top:2px;margin-bottom:8px;font-size:12px;color:#c2d5f1;overflow-wrap:anywhere}.menu{display:grid;grid-gap:8px;gap:8px;margin-top:16px}.menu a{text-decoration:none;display:block;padding:8px 10px;border-radius:10px;border:1px solid #2d4a71;background:#1a2d47;font-size:13px}.menu a:hover{background:#213a5d}.sidebar-kpis{margin-top:16px;display:grid;grid-gap:8px;gap:8px}.kpi-card{border:1px solid #2d4a71;border-radius:10px;padding:10px;background:#1a2d47}.kpi-card span{display:block;font-size:12px;color:#c7d8f1}.kpi-card strong{display:block;margin-top:2px;font-size:20px}.content{min-width:0;display:grid;grid-gap:16px;gap:16px}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.panel h2{font-size:20px;margin-bottom:10px}.panel h3{font-size:16px;margin-bottom:10px}.panel.inner{margin:0;background:#fcfdff}.alert{border-width:1px}.alert.error{background:var(--danger-bg);border-color:var(--danger-line)}.alert.success{background:var(--success-bg);border-color:var(--success-line)}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.summary-grid>div{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fbfdff}.summary-grid span{display:block;font-size:12px;color:var(--muted)}.summary-grid strong{display:block;margin-top:2px;font-size:15px;overflow-wrap:anywhere}.summary-grid.detail strong{font-size:17px}.form,.job-create-fields{display:grid;grid-gap:10px;gap:10px}.job-create-fields{min-width:0;margin:0;padding:0;border:0}.job-schedule-editor{display:grid;grid-gap:18px;gap:18px;min-width:0;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:#f8fafc}.job-calendar{width:100%;max-width:460px}.job-calendar-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:end}.job-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:5px;gap:5px}.job-calendar-weekday{font-size:12px;color:var(--muted);text-align:center}.job-calendar-day{min-width:0;min-height:40px;padding:4px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);cursor:pointer}.job-calendar-day[aria-current=date]{border-color:var(--accent)}.job-calendar-day[aria-pressed=true]{background:var(--accent);color:#fff;font-weight:700}.job-calendar-day:focus-visible{outline:3px solid var(--line-strong);outline-offset:2px}.job-calendar-day:disabled{opacity:.4;cursor:not-allowed}.job-schedule-list h3{margin:0}.job-time-copy{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;padding:12px 0}.job-copy-check{display:flex;align-items:center;gap:8px}.job-copy-check input{flex:0 0 auto;width:18px;height:18px}.job-copy-check small{display:block;color:var(--muted)}.job-workday-rows{display:grid;grid-gap:8px;gap:8px}.job-workday-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(100px,1fr) minmax(100px,1fr) auto;align-items:center;grid-gap:12px;gap:12px;padding:12px;border:1px solid var(--line);background:#fff;border-radius:10px}.job-calendar-heading input,.job-workday-row input{min-width:0;max-width:100%}.job-workday-row .btn{align-self:end}.work-date-line{display:block}@media (max-width:600px){.job-schedule-editor{padding:10px}.job-workday-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.job-workday-row .btn,.job-workday-row .job-copy-check{grid-column:1/-1}.job-schedule-editor input,.job-schedule-editor select{font-size:16px}.job-time-copy>label:first-child{width:100%}}label{display:grid;grid-gap:6px;gap:6px;font-size:13px;color:var(--muted)}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:10px;padding:9px 10px;background:#fff;color:var(--text)}textarea{min-height:88px;resize:vertical}.inline-2{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.grid.two{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.mt{margin-top:12px}.list{display:grid;grid-gap:10px;gap:10px}.item{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;background:#fcfdff}.item.active{border-color:var(--accent);background:var(--accent-weak)}.departure-item{align-items:stretch}.departure-item.departure-pending{border-color:#d7dee9;background:#fcfdff}.departure-item.departure-partial{border-color:#f0c98b;background:#fffaf1}.departure-item.departure-complete{border-color:#9ed8ae;background:#f1fbf3}.title{font-weight:700;font-size:15px}.sub{font-size:13px;color:var(--muted)}.actions-col{display:grid;grid-gap:8px;gap:8px;justify-items:end}.actions-inline{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.actions-row{display:flex;flex-wrap:wrap;gap:6px}.btn{border:1px solid transparent;border-radius:9px;background:var(--accent);color:#fff;padding:8px 12px;cursor:pointer;white-space:nowrap}.btn.secondary{background:#265f90}.btn.ghost{background:#fff;color:#24456b;border-color:#9ab0ca}.btn.small{font-size:12px;padding:6px 8px}.btn:disabled{opacity:.6;cursor:default}.table-wrap{margin-top:10px;overflow:auto;border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse;min-width:620px;background:#fff}td,th{border-bottom:1px solid #e6ebf4;padding:9px 10px;text-align:left;vertical-align:top;font-size:13px}th{font-weight:700;background:#f6f9ff;color:#273f5e}tr:last-child td{border-bottom:none}.chat-box{margin-top:10px;border:1px solid var(--line);border-radius:10px;padding:10px;display:grid;grid-gap:8px;gap:8px;background:#fbfdff;max-height:300px;overflow:auto}.chat-message{border:1px solid #dce4f0;border-radius:9px;padding:8px;background:#fff}.chat-message.staff{border-color:#bfd0ea;background:#f2f7ff}.chat-message.admin{border-color:#d5e8db;background:#f3fbf6}.chat-meta{font-size:11px;color:var(--muted);margin-bottom:4px}.line-chat-box{margin-top:10px;border:1px solid var(--line);border-radius:10px;padding:10px;gap:10px;background:#fbfdff;max-height:340px;overflow-y:auto;overflow-x:hidden}.line-chat-box,.line-chat-row{display:flex;flex-direction:column}.line-chat-row{align-items:flex-start;gap:4px}.line-chat-row.own{align-items:flex-end}.line-chat-bubble{max-width:min(86%,620px);border-radius:14px;border:1px solid #dce4f0;padding:9px 11px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.line-chat-bubble.other{background:#fff;border-color:#dce4f0;border-bottom-left-radius:6px}.line-chat-bubble.own{background:#e5f3ff;border-color:#9ec6ea;border-bottom-right-radius:6px}.line-chat-meta{display:inline-flex;gap:8px;align-items:center;font-size:11px;color:var(--muted)}.line-chat-read{color:#0f4c81;font-weight:700}.chat-open-btn{display:inline-flex;align-items:center;gap:6px}.chat-open-icon{width:14px;height:14px;flex:0 0 auto}.chat-new-badge{color:#b42318;font-weight:700;font-size:11px}.modal-backdrop{position:fixed;inset:0;background:rgba(14,24,38,.45);z-index:3500;display:grid;place-items:center;padding:14px}.modal-card{width:min(760px,100%);max-height:calc(100vh - 28px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;box-shadow:0 14px 28px rgba(14,24,38,.2)}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.modal-chat-box{max-height:340px}.thumb{width:72px;height:72px;object-fit:cover;border:1px solid var(--line);border-radius:8px;background:#f3f7ff}.precheck-message{white-space:pre-wrap;background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:12px;line-height:1.6}.precheck-image{max-width:100%;max-height:240px;border:1px solid var(--line);border-radius:8px;background:#f3f7ff}.precheck-time-input{min-width:0;max-width:100%;width:100%}.precheck-chat-box{max-height:260px;overflow-x:hidden}.floating-toast{position:fixed;right:20px;bottom:20px;z-index:4000;max-width:min(520px,calc(100vw - 24px));padding:12px 14px;border-radius:10px;box-shadow:0 8px 20px rgba(0,0,0,.12);border:1px solid transparent;line-height:1.5;font-weight:600;white-space:pre-wrap;word-break:break-word}.floating-toast.success{background:#edf8f0;border-color:#9fd0aa;color:#1f5130}.floating-toast.error{background:#fdf0f0;border-color:#e7a8a8;color:#7f1d1d}.attention{color:#b45309;font-weight:700}.muted-row{background:#f8fafc;color:#64748b}.preserve-lines{white-space:pre-wrap}.preserve-lines,code{overflow-wrap:anywhere}code{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;background:#edf2f9;border-radius:6px;padding:1px 5px}@media (max-width:1200px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;max-height:none}}@media (max-width:900px){.login-panel input,.login-panel select,.login-panel textarea{font-size:16px}.grid.two,.inline-2,.summary-grid{grid-template-columns:1fr}.actions-col{justify-items:stretch;width:100%}.item,.portal-head{flex-direction:column}.portal-head{align-items:stretch}.btn{width:100%;text-align:center}.floating-toast{left:12px;right:12px;bottom:12px;max-width:none}}.admin-notifications{position:-webkit-sticky;position:sticky;top:8px;z-index:20;border:1px solid var(--line,#d9e0e9);border-radius:12px;background:#fff;padding:12px}.notification-toggle{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.notification-count{border-radius:99px;min-width:26px;padding:2px 8px;background:#eaf0f6;text-align:center}.notification-count.unread{color:#fff;background:#b42335}.notification-feed{display:grid;grid-gap:12px;gap:12px;margin-top:12px;max-height:60vh;overflow-y:auto}.notification-item{padding:12px;border:1px solid #dce5ee;border-radius:8px;overflow-wrap:anywhere}.notification-item.unread{background:#f0f7ff;border-left:4px solid #1d5c86}.notification-item p{margin:6px 0}.notification-item time{font-size:12px;color:#52677c}.notification-new{position:fixed;bottom:24px;right:24px;z-index:90;max-width:min(420px,calc(100vw - 48px));padding:14px;border:1px solid #95bbdb;border-radius:8px;color:#123d5c;background:#e1f0fe;box-shadow:0 8px 24px #153c5926}.recruitment-group{border:1px solid #c6d7e6;border-radius:12px;padding:8px}.recruitment-group-heading{background:#f0f6fc}.recruitment-group-days{padding:10px 0 0 12px}.recruitment-group-days>div+div{margin-top:10px}.line-portal-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px;margin-top:16px}.line-portal-nav a{padding:12px 8px;border:1px solid #cddbe8;border-radius:8px;color:#164c70;text-align:center;font-size:14px;text-decoration:none;background:#f7fafc}.line-portal-nav a[aria-current=page]{color:#fff;background:#164c70;border-color:#164c70}.precheck-message a{overflow-wrap:anywhere;word-break:break-all}@media (max-width:600px){.line-portal-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.recruitment-group-heading{flex-direction:column;align-items:stretch}.recruitment-group-days{padding-left:0}}