:root{--bg: #eff8f6;--card: #ffffff;--border: #d3e6e0;--text: #1c1e22;--muted: #6b7280;--heading: #3d4852;--accent: #0e7490;--success: #16a34a;--error: #c0392b;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Noto Sans TC,PingFang TC,sans-serif;line-height:1.5}h1,h2,h3,h4{margin:0 0 .6rem;color:var(--heading)}a{color:var(--accent)}button{background:var(--accent);color:#fff;border:0;border-radius:6px;padding:.55rem 1.1rem;font-size:.95rem;cursor:pointer}button:disabled{opacity:.55;cursor:default}.link-btn{background:none;border:0;padding:0;color:var(--accent);text-decoration:underline;font:inherit;cursor:pointer}input,textarea{width:100%;padding:.5rem .6rem;border:1px solid var(--border);border-radius:6px;font:inherit;background:#fff}label{display:block;font-size:.88rem;color:var(--muted)}label input,label textarea{margin-top:.25rem;color:var(--text)}.muted{color:var(--muted);font-size:.9rem}.error{color:var(--error);font-size:.9rem}.auth-card{max-width:360px;margin:10vh auto;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.75rem}.auth-card form{display:flex;flex-direction:column;gap:.9rem;margin-bottom:1rem}.topbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;row-gap:.5rem;column-gap:1rem;padding:.9rem 1.25rem;background:var(--card);border-bottom:1px solid var(--border)}.topbar-title{min-width:0;flex:1 1 auto}.topbar-right{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;min-width:0}@media (max-width: 480px){.topbar-title strong{font-size:.95rem}.topbar-right{width:100%;justify-content:flex-end}.topbar-right .muted{order:3;width:100%;text-align:right;font-size:.8rem}}.content{max-width:900px;margin:1.5rem auto;padding:0 1.25rem}.stack{display:flex;flex-direction:column;gap:1.25rem}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.25rem}.readonly-grid{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1rem;margin:0}.readonly-grid dt{color:var(--muted);font-size:.9rem}.readonly-grid dd{margin:0}.nav-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:.9rem}@media (min-width: 560px){.nav-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 840px){.nav-grid{grid-template-columns:repeat(3,1fr)}}.nav-tile{display:flex;flex-direction:column;gap:.3rem;min-height:6.5rem;padding:.9rem 1.1rem;border-radius:8px;background:var(--accent);color:#fff;text-decoration:none;line-height:1.35}.nav-tile:hover,.nav-tile:focus-visible{opacity:.88}.nav-tile-title{font-weight:700;font-size:.98rem}.nav-tile-desc{font-size:.8rem;color:#fff;opacity:.92}.stat-row{display:flex;flex-wrap:wrap;gap:1rem}.stat{min-width:88px;text-align:center;padding:.75rem 1rem;border:1px solid var(--border);border-radius:8px}.stat-n{font-size:1.6rem;font-weight:700}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--muted);font-weight:600}select{width:100%;padding:.5rem .6rem;border:1px solid var(--border);border-radius:6px;font:inherit;background:#fff;color:var(--text)}.assign-table{table-layout:fixed;min-width:30rem}.assign-table .col-position{width:6rem}.assign-table .col-status{width:6.5rem}.assign-table .col-action{width:5rem}.assign-table td:first-child{white-space:normal;word-break:break-word}.form-page{max-width:680px;margin:2rem auto;padding:0 1rem 4rem}.form-page .card form{margin:0}.req{color:var(--error)}.field{display:block;margin-top:.9rem}.field:first-of-type{margin-top:0}.field>span,.field-label{display:block;font-size:.88rem;color:var(--muted);margin-bottom:.3rem}.option-row{display:flex;flex-wrap:wrap;gap:.5rem 1rem}.option,.check{display:flex;align-items:flex-start;gap:.4rem;font-size:.92rem;color:var(--text);cursor:pointer}.check{margin-top:.9rem;align-items:flex-start}.option input,.check input{width:auto;margin-top:.15rem;flex-shrink:0}.subgroup{margin-top:.9rem;border:1px solid var(--border);border-radius:8px;padding:.5rem .9rem .9rem}.subgroup legend{font-size:.85rem;color:var(--muted);padding:0 .4rem}.slot-hint{margin:0 0 .5rem}.consent-list{margin:.3rem 0 0;padding-left:1.2rem}.consent-list li+li{margin-top:.25rem}.slot-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem}.slot-row input[type=date],.slot-row select{width:auto;flex:1 1 9rem}.slot-label{flex:0 0 3rem;font-size:.88rem;color:var(--muted)}.filter-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.chip{background:#fff;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:.35rem .85rem;font-size:.88rem}.chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.chip:disabled{opacity:.4}.plain-list{margin:0;padding-left:1.1rem}.row-dirty td,.skill-row.row-dirty{background:#fff7ed}h3{margin:0 0 .5rem;font-size:1rem}.interview-form{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.rank-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.rank-list li{display:flex;align-items:center;gap:.6rem;padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px;background:#fff}.rank-num{flex:0 0 1.4rem;height:1.4rem;line-height:1.4rem;text-align:center;border-radius:999px;background:var(--accent);color:#fff;font-size:.8rem}.rank-group{flex:1}.rank-btns{display:flex;gap:.25rem}.rank-btns button{padding:.15rem .5rem;font-size:.8rem;background:#fff;color:var(--text);border:1px solid var(--border)}.rank-btns button:disabled{opacity:.35}.rank-add{margin-top:.5rem;width:auto;max-width:12rem}a.a-button{display:inline-block;background:var(--accent);color:#fff;padding:.5rem 1rem;border-radius:6px;text-decoration:none;font-size:.9rem}.cal-header{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.75rem}.cal-scroll{overflow-x:auto}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(6rem,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:8px;overflow:hidden}.cal-dow{background:var(--card);text-align:center;padding:.4rem 0;font-size:.85rem;color:var(--muted)}.cal-cell{background:var(--card);min-height:5.5rem;padding:.3rem;display:flex;flex-direction:column;gap:.2rem}.cal-day-num{font-size:.78rem;color:var(--muted)}.cal-today{background:#dcf0ec}.cal-today .cal-day-num{color:var(--accent);font-weight:700}.cal-event{display:block;font-size:.74rem;line-height:1.3;background:var(--accent);color:#fff;border-radius:4px;padding:.12rem .3rem;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event-static{cursor:default}button.cal-event{width:100%;text-align:left;border:0;font-family:inherit}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-start;justify-content:center;padding:8vh 1rem 1rem;z-index:50}.modal-card{position:relative;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.5rem;max-width:420px;width:100%}.modal-close{position:absolute;top:.6rem;right:.6rem;background:none;color:var(--muted);padding:.2rem .5rem}.cat-badge{display:inline-block;color:#fff;font-size:.78rem;padding:.1rem .5rem;border-radius:999px;white-space:nowrap}.cat-dot{display:inline-block;width:.6rem;height:.6rem;border-radius:999px;margin-right:.35rem;vertical-align:middle}.skill-cat{border:1px solid var(--border);border-radius:8px}.skill-cat>summary{padding:.6rem .9rem;cursor:pointer;font-weight:600}.skill-list{padding:0 .9rem .6rem;display:flex;flex-direction:column}.skill-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.4rem 0;border-top:1px solid var(--border);font-size:.9rem}.skill-name{flex:1 1 8rem;min-width:6rem}.skill-seg{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.skill-seg button{background:#fff;color:var(--text);border:0;border-left:1px solid var(--border);padding:.25rem .6rem;font-size:.82rem}.skill-seg button:first-child{border-left:0}.skill-seg button.active{color:#fff}.skill-date{width:auto;padding:.25rem .4rem;font-size:.82rem}.skill-note{flex:1 1 8rem;padding:.25rem .4rem;font-size:.82rem}.skill-badge{font-size:.8rem;padding:.1rem .55rem;border-radius:999px;color:#fff}.dc-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.dc-toolbar .date-range{display:flex;align-items:center;gap:.4rem}.dc-toolbar .date-range input[type=date]{width:auto}.dc-section-title{font-size:1.15rem;margin:.5rem 0 0}.dc-tabs{display:flex;gap:.4rem;border-bottom:1px solid var(--border);overflow-x:auto}.dc-tab{background:none;color:var(--muted);border:0;border-bottom:2px solid transparent;border-radius:0;padding:.6rem .9rem;font-size:.95rem;white-space:nowrap}.dc-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.hbar-list{display:flex;flex-direction:column;gap:.5rem}.hbar-row{display:flex;align-items:center;gap:.6rem}.hbar-label{flex:0 0 7rem;font-size:.85rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbar-track{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:4px;height:.9rem;overflow:hidden}.hbar-fill{height:100%;border-radius:4px}.hbar-value{flex:0 0 4rem;text-align:right;font-size:.85rem;font-weight:600;white-space:nowrap}.trend-chart-legend{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.6rem;font-size:.82rem;color:var(--muted)}.legend-item{display:inline-flex;align-items:center}.legend-dot{display:inline-block;width:.6rem;height:.6rem;border-radius:999px;margin-right:.35rem}.trend-chart-body{display:flex;align-items:flex-end;gap:.5rem;border-bottom:1px solid var(--border);padding-bottom:.25rem;overflow-x:auto}.trend-chart-group{display:flex;flex-direction:column;align-items:center;min-width:2.4rem;flex:1 1 auto;height:100%;justify-content:flex-end}.trend-chart-bars{display:flex;align-items:flex-end;justify-content:center;gap:2px;height:100%;width:100%}.trend-chart-bar{width:12px;border-radius:2px 2px 0 0;min-height:1px}.trend-chart-tick{font-size:.7rem;color:var(--muted);margin-top:.3rem;white-space:nowrap}
