@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Spline+Sans:wght@400;500;600;700&display=swap";:root{--bg: #f7f8fa;--surface: #ffffff;--ink: #14171c;--ink-soft: #4a5160;--ink-faint: #8b93a3;--line: #e3e6ec;--line-strong: #cfd4de;--brand: #0f1115;--accent: #c2410c;--accent-soft: #fff1ea;--attention: #dc2626;--attention-soft: #fef2f2;--priority: #b45309;--priority-soft: #fff7ed;--mine: #1d4ed8;--mine-soft: #eff4ff;--ok: #16a34a;--radius: 14px;--radius-sm: 10px;--shadow: 0 1px 2px rgba(20,23,28,.04), 0 6px 20px rgba(20,23,28,.06);--shadow-lift: 0 2px 6px rgba(20,23,28,.08), 0 18px 40px rgba(20,23,28,.1);--tap: 48px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:Spline Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}#root{min-height:100vh}h1,h2,h3,h4{font-family:Fraunces,Georgia,serif;font-weight:600;line-height:1.15;margin:0;letter-spacing:-.01em}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:16px;width:100%;padding:13px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);min-height:var(--tap)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input:disabled,select:disabled,textarea:disabled{background:#eef0f4;color:var(--ink-faint);cursor:not-allowed}textarea{resize:vertical;min-height:90px;line-height:1.45}label{display:block;font-size:13px;font-weight:600;color:var(--ink-soft);margin-bottom:6px}a{color:inherit;text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 18px;border-radius:var(--radius-sm);font-weight:600;font-size:15px;border:1px solid transparent;transition:transform .08s ease,background .15s ease,box-shadow .15s ease}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:#23262d}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:#a8370b}.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.btn-ghost:hover{background:#f1f3f7}.btn-danger{background:var(--attention-soft);color:var(--attention);border-color:#f3c7c7}.btn-sm{min-height:38px;padding:0 12px;font-size:14px}.btn-block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.logo{display:block;width:auto;height:auto;object-fit:contain}.topbar .logo{height:44px;cursor:pointer;border-radius:8px}.login-logo .logo{width:280px;max-width:80%;height:auto}.site-footer{border-top:1px solid var(--line);background:var(--surface);padding:18px 0;margin-bottom:0}.site-footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--ink-faint)}.close-zone{margin-top:22px;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.close-zone-text h3{font-family:Fraunces,serif;font-size:17px;font-weight:600}.danger-zone{margin-top:22px;border:1.5px solid #f3c7c7;background:var(--attention-soft);border-radius:var(--radius);padding:20px}.danger-zone h3{font-family:Fraunces,serif;font-size:17px;font-weight:600;color:var(--attention);margin:0 0 4px}.danger-zone p{font-size:13px;color:var(--ink-soft);margin:0 0 14px}.attention-note{margin-top:8px;padding:8px 10px;background:var(--attention-soft);border-left:3px solid var(--attention);border-radius:4px;font-size:13px;color:var(--ink);line-height:1.4;white-space:pre-wrap}.site-footer-right{display:inline-flex;align-items:center;gap:16px}.site-footer-admin{color:var(--ink-faint);text-decoration:none;font-weight:600;font-size:12px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;transition:background .12s,color .12s}.site-footer-admin:hover{background:var(--surface);color:var(--ink)}.admin-cats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.admin-cat{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink-soft);padding:7px 14px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer}.admin-cat:hover{background:#f1f3f7;color:var(--ink)}.admin-cat.on{background:var(--ink);color:#fff;border-color:var(--ink)}.admin-controls{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:14px}.admin-controls>div:first-child{flex:0 0 260px;max-width:100%}.admin-log{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);max-height:70vh;overflow-y:auto}.admin-log-row{display:flex;gap:12px;padding:14px 16px;border-top:1px solid var(--line)}.admin-log-row:first-child{border-top:none}.admin-log-icon{flex-shrink:0;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;background:#f1f3f7;border-radius:50%;font-size:15px}.admin-log-body{flex:1;min-width:0}.admin-log-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.admin-log-kind{font-weight:700;font-size:13px;color:var(--ink)}.admin-log-time{font-size:11px;color:var(--ink-faint);margin-left:auto}.admin-log-meta{font-size:13px;color:var(--ink-soft);margin-top:2px}.admin-log-note{margin-top:6px;padding:8px 10px;background:#fafbfc;border-left:3px solid var(--ink-faint);border-radius:4px;font-size:13px;white-space:pre-wrap}@media (max-width: 759px){.site-footer-inner{justify-content:center;text-align:center;flex-direction:column}.site-footer{margin-bottom:calc(var(--tap) + 24px)}}.app-shell{min-height:100vh;display:flex;flex-direction:column}.container{width:100%;max-width:1080px;margin:0 auto;padding:0 16px}.topbar{position:sticky;top:0;z-index:50;background:#ffffffdb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar-inner{display:flex;align-items:center;gap:12px;height:64px}.brand-link{display:flex;align-items:center;gap:12px;cursor:pointer}.brand-name{font-family:Fraunces,serif;font-weight:700;font-size:19px;letter-spacing:-.02em}.brand-sub{font-size:11px;color:var(--ink-faint);font-weight:600;text-transform:uppercase;letter-spacing:.08em}.topbar-spacer{flex:1}.nav{display:flex;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px}.nav a{padding:9px 16px;border-radius:999px;font-size:14px;font-weight:600;color:var(--ink-soft);white-space:nowrap}.nav a.active{background:var(--brand);color:#fff}.bottom-nav{display:none}.page{padding:22px 0 96px;flex:1}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}.page-head h1{font-size:28px}.section{margin-bottom:26px}.section-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.section-head h2{font-size:18px}.section-head h3{font-size:15px;margin:0;font-weight:700}.section-count{font-size:12px;font-weight:700;color:var(--ink-faint);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:2px 9px}.section-rail{width:4px;height:20px;border-radius:2px;background:var(--ink-faint)}.planner-section{margin-bottom:26px}.planner-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 859px){.planner-grid{grid-template-columns:1fr}}.planner-window{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.planner-window-body{padding:14px}.planner-window-scroll{max-height:260px;overflow-y:auto}@media (max-width: 759px){.planner-window-scroll{max-height:240px}}.attention-window{border-color:#f3c7c7}.attention-banner{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--attention-soft);border-bottom:1px solid #f3c7c7;color:var(--attention);font-size:13px;font-weight:700;letter-spacing:.01em}.attention-banner-icon{font-size:16px}.planner-stack{display:flex;flex-direction:column;gap:10px}.planner-task-row{display:block;padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--mine);border-radius:10px;background:var(--surface);text-decoration:none;color:inherit;transition:box-shadow .12s,transform .08s}.planner-task-row:hover{box-shadow:var(--shadow-lift);transform:translateY(-1px)}.planner-task-row-text{font-size:14px;font-weight:600;color:var(--ink)}.planner-task-row-meta{margin-top:4px;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--ink-soft)}.planner-task-row-due{font-weight:600}.planner-task-overdue{border-left-color:var(--attention);background:var(--attention-soft)}.planner-task-overdue .planner-task-row-due{color:var(--attention)}.planner-task-today{border-left-color:var(--accent)}.planner-task-today .planner-task-row-due{color:var(--accent)}.planner-task-future{opacity:.55;border-left-color:var(--ink-faint)}.planner-task-future:hover{opacity:.85}.planner-group-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px}.planner-group-overdue{color:var(--attention)}.cal-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}.cal-toolbar-title{font-family:Fraunces,Georgia,serif;font-size:20px;font-weight:600;min-width:180px}.cal-today-btn{margin-left:auto}.cal-weekday-row{margin-bottom:4px}.cal-weekday{text-align:center;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding:6px 0}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-cell{background:var(--surface);border:1px solid var(--line);border-radius:8px;min-height:100px;padding:6px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:4px;font-family:inherit;color:inherit}.cal-cell:hover{background:#fafbfc}.cal-cell-out{opacity:.4}.cal-cell-today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.cal-cell-head{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700}.cal-cell-today .cal-cell-day{color:var(--accent)}.cal-cell-dot{font-size:10px;font-weight:700;background:var(--ink-faint);color:#fff;border-radius:999px;padding:1px 6px;min-width:16px;text-align:center}.cal-cell-today .cal-cell-dot{background:var(--accent)}.cal-cell-items{display:flex;flex-direction:column;gap:2px;overflow:hidden}.cal-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;font-size:11px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-chip-job{background:#f1f3f7;color:var(--ink)}.cal-chip-event{background:var(--accent-soft);color:var(--accent);border:1px solid #fde2c0;font-weight:600}.cal-chip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.cal-chip-icon{font-size:10px}.cal-chip-text{overflow:hidden;text-overflow:ellipsis}.cal-chip-more{font-size:10px;color:var(--ink-faint);padding:1px 4px;font-weight:600}@media (max-width: 759px){.cal-cell{min-height:64px;padding:4px}.cal-cell-head{font-size:11px}.cal-chip{font-size:9px;padding:1px 3px}.cal-chip-more{font-size:9px}.cal-toolbar-title{font-size:17px;min-width:0}.cal-weekday{font-size:9px;padding:4px 0}}.all-jobs-divider{height:1px;background:var(--line);margin:8px 0 18px}.all-jobs-header{display:flex;align-items:baseline;gap:10px;margin-bottom:14px;flex-wrap:wrap}.all-jobs-header h2{font-family:Fraunces,serif;font-size:22px;font-weight:600;margin:0}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 759px){.status-grid{grid-template-columns:1fr}}.status-window{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px}.status-window .section-head{margin-bottom:10px}.status-window-scroll{max-height:360px;overflow-y:auto}.status-window-empty{opacity:.55;background:transparent;box-shadow:none}.status-window-none{font-size:13px;color:var(--ink-faint);font-style:italic;padding:8px 4px}@media (max-width: 759px){.status-window-scroll{max-height:300px}}.rail-mine{background:var(--mine)}.rail-attention{background:var(--attention)}.rail-priority{background:var(--priority)}.job-grid{display:grid;grid-template-columns:1fr;gap:12px}.job-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);transition:transform .1s ease,box-shadow .15s ease;display:block}.job-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-1px)}.job-card.flag-attention{border-left:4px solid var(--attention)}.job-card.flag-priority{border-left:4px solid var(--priority)}.job-card.flag-mine{border-left:4px solid var(--mine)}.job-card-compact{padding:14px 16px}.job-card-compact .job-title{margin-top:2px;font-size:15px}.job-title{font-family:Fraunces,serif;font-size:17px;font-weight:600;margin-bottom:4px}.job-meta{font-size:13px;color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px}.job-meta span{display:inline-flex;align-items:center;gap:5px}.badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.badge{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;color:#fff;white-space:nowrap;line-height:1.4}.badge-soft{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink-soft)}.chip-attention{background:var(--attention-soft);color:var(--attention);border:1px solid #f3c7c7}.chip-priority{background:var(--priority-soft);color:var(--priority);border:1px solid #fde2c0}.chip-mine{background:var(--mine-soft);color:var(--mine);border:1px solid #cdddff}.task-line{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}.task-line:first-child{border-top:none}.task-check{width:26px;height:26px;min-width:26px;border-radius:7px;border:2px solid var(--line-strong);background:var(--surface);display:inline-flex;align-items:center;justify-content:center}.task-check.done{background:var(--ok);border-color:var(--ok);color:#fff}.task-text{font-size:14px}.multi-select{position:relative}.chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--accent-soft);color:var(--accent);border:1px solid #fde2c0;border-radius:999px;padding:4px 6px 4px 12px;font-size:13px;font-weight:600;max-width:100%}.chip-x{background:#c2410c26;color:var(--accent);border:none;border-radius:50%;width:22px;height:22px;font-size:16px;line-height:1;padding:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.chip-x:hover{background:#c2410c40}.multi-select-input-wrap{position:relative}.multi-select-menu{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-lift);z-index:20;max-height:240px;overflow-y:auto}.multi-select-option{display:block;width:100%;text-align:left;background:transparent;border:none;padding:10px 14px;font-size:14px;color:var(--ink);cursor:pointer}.multi-select-option:hover{background:#f1f3f7}.multi-select-option:disabled{color:var(--ink-faint);cursor:wait}.multi-select-add{color:var(--accent);font-weight:600;border-top:1px solid var(--line)}.job-head{gap:14px;align-items:flex-start}.job-head-actions{align-items:center}.job-schedule-row{margin-top:6px;font-size:14px;font-weight:500;color:var(--ink-soft)}.status-pill{position:relative;display:inline-flex;align-items:center;gap:8px;color:#fff;font-weight:700;font-size:13px;padding:8px 14px;border-radius:999px;cursor:pointer;letter-spacing:.01em;box-shadow:0 1px 2px #0000001a;transition:transform .08s ease,box-shadow .12s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.status-pill:hover{transform:translateY(-1px);box-shadow:0 2px 6px #0000002e}.status-pill-caret{font-size:11px;opacity:.9}.status-pill-select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;font-size:16px}.job-details-split{display:grid;grid-template-columns:1fr 1fr;gap:24px}.job-details-col{display:flex;flex-direction:column;gap:12px}.job-detail-row{display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:baseline;font-size:14px}.job-detail-label{font-weight:600;color:var(--ink-soft);white-space:nowrap}.job-detail-value{color:var(--ink);word-break:break-word}@media (max-width: 759px){.job-details-split{grid-template-columns:1fr;gap:16px}.job-detail-row{grid-template-columns:100px 1fr}}.note-deleted .note-body{color:var(--ink-faint);font-style:italic}.note-delete-btn{margin-top:8px;color:var(--attention)}.composer-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.composer-toggle{display:inline-flex;background:#f1f3f7;border-radius:999px;padding:3px;gap:2px}.composer-toggle-btn{background:transparent;border:none;padding:7px 14px;border-radius:999px;font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:background .12s ease,color .12s ease}.composer-toggle-btn:hover{color:var(--ink)}.composer-toggle-btn.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #00000014}.composer-disabled{opacity:.55;pointer-events:none}.planner-composer{display:grid;grid-template-columns:1fr 220px;gap:16px;align-items:start}.planner-composer-left{min-width:0}.planner-composer-right{display:flex;flex-direction:column;gap:10px}@media (max-width: 759px){.planner-composer{grid-template-columns:1fr}}.planner-composer-options{margin-top:8px;display:flex;align-items:center;flex-wrap:wrap}.planner-task-options{margin-top:12px;padding:14px;background:#fafbfc;border:1px solid var(--line);border-radius:var(--radius-sm)}.assignee-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.assignee-chip{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink);padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer}.assignee-chip.on{background:var(--accent-soft);color:var(--accent);border-color:#fde2c0}.assignee-chip:hover{background:#f1f3f7}.assignee-chip.on:hover{background:#ffe9d6}.planner-task{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.planner-task:first-child{border-top:none}.planner-task .task-check{margin-top:2px;flex-shrink:0}.planner-task-body{flex:1;min-width:0}.planner-task-text{font-size:14px;color:var(--ink)}.planner-task-meta{margin-top:4px;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--ink-soft)}.planner-task-meta .overdue{color:var(--attention);font-weight:700}.planner-tasks-scroll{max-height:320px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius-sm);padding:4px 12px;background:#fafbfc}.activity-item{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.activity-item:first-child{border-top:none}.activity-icon{flex-shrink:0;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-alt, #f1f3f7);border-radius:50%;font-size:14px}.activity-task .activity-icon{background:var(--accent-soft)}.activity-completed .activity-icon{background:#e8f5ec}.activity-body{flex:1;min-width:0}.activity-list-scroll{max-height:460px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius-sm);padding:4px 14px;background:#fafbfc}@media (max-width: 759px){.planner-tasks-scroll{max-height:280px}.activity-list-scroll{max-height:360px}}.split-pane{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;align-items:start}.split-pane-left,.split-pane-right{min-width:0}.split-pane-right label:first-child{margin-top:0}@media (max-width: 759px){.split-pane{grid-template-columns:1fr;gap:18px}.split-pane-right{order:1}.split-pane-left{order:2}}.notes-list-scroll{max-height:420px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 14px;background:#fafbfc}.notes-list-scroll .note:first-child{padding-top:4px;border-top:none}.notes-list-scroll .note:last-child{padding-bottom:4px}.tasks-list-scroll{max-height:380px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 14px;background:#fafbfc}.tasks-list-scroll .task-row:first-child{border-top:none;padding-top:4px}@media (max-width: 759px){.notes-list-scroll{max-height:340px}.tasks-list-scroll{max-height:300px}}.task-date-icon{width:36px;min-height:36px;padding:4px;border-radius:8px;flex-shrink:0;cursor:pointer;font-size:16px;color:transparent}.task-date-icon::-webkit-datetime-edit{display:none}.task-date-icon::-webkit-inner-spin-button{display:none}.task-date-icon::-webkit-clear-button{display:none}.task-date-icon::-webkit-calendar-picker-indicator{opacity:1;cursor:pointer;padding:0;margin:0}.task-date-icon-lg{width:44px;height:42px}.task-date-wrap{display:inline-flex;align-items:center;gap:6px;background:var(--accent-soft);border:1px solid #fde2c0;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:600;color:var(--accent);min-height:28px}.task-date-prefix{font-weight:700}.task-date-input{background:transparent;border:none;padding:0;margin:0;min-height:0;width:auto;font-size:12px;font-weight:600;color:var(--accent);font-family:inherit;cursor:pointer}.task-date-input:focus{outline:none}.task-date-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.7;filter:invert(35%) sepia(85%) saturate(2300%) hue-rotate(15deg)}.task-form-row{display:flex;gap:10px;align-items:flex-end}.task-form-row>div:first-child{flex:1;min-width:0}.link-btn{background:none;border:none;padding:0;color:var(--accent);font-weight:600;cursor:pointer;font-size:inherit;text-decoration:underline}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;align-items:start}@media (max-width: 759px){.bottom-grid{grid-template-columns:1fr}}.bottom-right-stack{display:flex;flex-direction:column;gap:16px}.day-events-scroll{max-height:88px;overflow-y:auto;padding-right:4px}.address-ac{position:relative}.address-ac-menu{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-lift);z-index:20;max-height:280px;overflow-y:auto}.address-ac-hint{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);padding:8px 14px 4px;font-weight:700}.address-ac-option{display:block;width:100%;text-align:left;background:transparent;border:none;padding:10px 14px;font-size:14px;color:var(--ink);cursor:pointer}.address-ac-option:hover{background:#f1f3f7}.task-text.done{text-decoration:line-through;color:var(--ink-faint)}.task-row{padding:8px 0;border-top:1px solid var(--line)}.task-row:first-child{border-top:none}.task-meta-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px;margin-left:36px}.task-assignee-select{width:auto;min-width:110px;max-width:170px;min-height:36px;padding:6px 8px;font-size:13px;border-radius:8px;flex-shrink:0}.task-due-input{width:auto;min-height:36px;padding:6px 8px;font-size:13px;border-radius:8px;flex-shrink:0;max-width:170px}.task-add-grid{display:grid;gap:8px;grid-template-columns:2fr 1fr 1fr auto}.task-add-grid input,.task-add-grid select{min-height:42px}.mobile-only{display:none}.signout-mobile{font-size:20px;min-width:44px;padding:0;line-height:1}@media (max-width: 759px){.task-add-grid{grid-template-columns:1fr}.mobile-only{display:inline-flex}}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field-full{grid-column:1 / -1}.date-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.unit-row{display:grid;grid-template-columns:auto 1fr 1fr;gap:14px;align-items:end}.unit-row-check{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink-soft);white-space:nowrap;padding-bottom:10px;-webkit-user-select:none;user-select:none}.unit-row-check input[type=checkbox]{width:22px;height:22px;min-height:auto;margin:0;cursor:pointer}.unit-row input:disabled{background:#f3f4f7;color:var(--ink-faint);cursor:not-allowed}@media (max-width: 559px){.unit-row{grid-template-columns:auto 1fr}.unit-row>div:last-child{grid-column:1 / -1}.unit-row-check{padding-bottom:0;align-self:center}}.card-pad{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.hint{font-size:12px;color:var(--ink-faint);margin-top:4px}.note{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:10px}.note-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px}.note-author{font-weight:700;font-size:13px}.note-time{font-size:11px;color:var(--ink-faint);white-space:nowrap}.note-body{font-size:14px;white-space:pre-wrap;word-break:break-word}.note-edited{font-size:11px;color:var(--ink-faint);font-style:italic}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-dow{font-size:11px;font-weight:700;color:var(--ink-faint);text-align:center;text-transform:uppercase;letter-spacing:.05em;padding-bottom:4px}.cal-cell{background:var(--surface);border:1px solid var(--line);border-radius:8px;min-height:78px;padding:6px;overflow:hidden}.cal-cell.today{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.cal-cell.dim{background:#fbfbfc}.cal-date{font-size:12px;font-weight:700;color:var(--ink-soft)}.cal-event{font-size:10px;font-weight:600;color:#fff;border-radius:5px;padding:2px 5px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt{overflow-x:auto}.gantt-row{display:grid;grid-template-columns:200px 1fr;gap:10px;align-items:center;margin-bottom:8px}.gantt-label{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-track{position:relative;height:26px;background:#f1f3f7;border-radius:6px}.gantt-bar{position:absolute;top:3px;height:20px;border-radius:5px;color:#fff;font-size:11px;font-weight:600;padding:0 6px;display:flex;align-items:center;overflow:hidden}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14171c73;display:flex;align-items:flex-end;justify-content:center;z-index:100;padding:0}.modal{background:var(--surface);width:100%;max-width:520px;border-radius:18px 18px 0 0;padding:22px;box-shadow:var(--shadow-lift);max-height:92vh;overflow-y:auto}.modal h3{font-size:20px;margin-bottom:6px}.empty{text-align:center;color:var(--ink-faint);padding:40px 16px;font-size:14px}.row{display:flex;gap:10px;align-items:center}.row-wrap{flex-wrap:wrap}.list-item{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 8px 8px 14px;margin-bottom:8px}.list-item .name{flex:1;font-weight:500}.toast{position:fixed;bottom:90px;left:50%;transform:translate(-50%);background:var(--brand);color:#fff;padding:12px 18px;border-radius:999px;font-size:14px;font-weight:600;z-index:200;box-shadow:var(--shadow-lift)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(1200px 600px at 80% -10%,#ffece2 0%,transparent 55%),var(--bg)}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-lift);padding:30px 26px;width:100%;max-width:400px}.login-logo{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:22px}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.fade-up{animation:fadeUp .3s ease both}@media (min-width: 760px){.job-grid.two{grid-template-columns:1fr 1fr}.modal{border-radius:18px;align-self:center}.modal-backdrop{align-items:center}}@media (max-width: 759px){.desktop-nav{display:none}.form-grid{grid-template-columns:1fr}.page-head h1{font-size:23px}.job-head{flex-direction:column;align-items:stretch}.job-head h1{word-break:break-word;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none}.job-head-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}input[type=date]{width:100%;box-sizing:border-box;max-width:100%}.task-date-wrap,.task-date-icon{width:auto}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60;background:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:10px;font-weight:700;color:var(--ink-faint);min-height:var(--tap);justify-content:center}.bottom-nav a.active{color:var(--accent)}.bottom-nav .ico{font-size:19px;line-height:1}.gantt-desktop-only{display:none}}.mobile-gantt-list{display:none}@media (max-width: 759px){.mobile-gantt-list{display:grid}}
