:root{--ink:#1c2430;--muted:#5e6a78;--line:#e6dfd4;--paper:#f4f0e8;--card:#fffcf8;--sidebar:#1a2733;--sidebar-text:#d5dee7;--sidebar-muted:#8ea0b3;--accent:#c45c26;--accent-soft:#f8ebe3;--good:#2c6b4a;--good-soft:#e5f2eb;--warn:#8d5a12;--warn-soft:#f8efdc;--risk:#8f3b32;--risk-soft:#f8e8e6;--shadow:0 12px 28px #1c24300f;--radius:16px;--sidebar-width:248px}*{box-sizing:border-box}body{color:var(--ink);background:var(--paper);margin:0;font-family:Segoe UI,system-ui,sans-serif;line-height:1.5}button,input,select,textarea{font:inherit}[hidden]{display:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--sidebar);color:var(--sidebar-text);z-index:20;flex-direction:column;gap:28px;padding:24px 16px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:12px;padding:0 8px;display:flex}.brand strong{color:#fff;font-size:1.05rem;display:block}.brand small{color:var(--sidebar-muted)}.brand-mark{background:var(--accent);color:#fff;letter-spacing:.04em;border-radius:12px;place-items:center;width:42px;height:42px;font-weight:700;display:grid}.nav{flex-direction:column;gap:6px;display:flex}.nav-btn{width:100%;color:var(--sidebar-text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:10px;padding:11px 12px;display:flex}.nav-btn:hover,.nav-btn.is-active{color:#fff;background:#ffffff14}.nav-btn.is-active{box-shadow:inset 3px 0 0 var(--accent)}.nav-icon{background:var(--sidebar-muted);border-radius:50%;width:8px;height:8px}.nav-btn.is-active .nav-icon{background:var(--accent)}.sidebar-note{color:var(--sidebar-muted);margin-top:auto;padding:0 8px;font-size:.85rem}.backdrop{z-index:15;background:#12182073;position:fixed;inset:0}.main{margin-left:var(--sidebar-width);padding:28px 32px 48px}.topbar,.topbar-title{align-items:center;gap:16px;display:flex}.topbar{justify-content:space-between;margin-bottom:24px}.eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:700}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.03em;margin-bottom:0;font-size:1.8rem}.today{color:var(--muted);margin:0;font-size:.95rem}.menu-btn{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:10px;padding:8px 12px;display:none}.cards{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;display:grid}.card,.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card{padding:18px 18px 16px}.card span,.meta,.muted{color:var(--muted);font-size:.88rem}.card strong{letter-spacing:-.04em;margin-top:8px;font-size:1.8rem;display:block}.card em{color:var(--muted);margin-top:6px;font-size:.85rem;font-style:normal;display:block}.panel{padding:20px}.panel-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:8px;display:flex}.panel-head p,.intro{color:var(--muted);margin-bottom:0}.progress-row{border-top:1px solid var(--line);grid-template-columns:minmax(180px,1.4fr) minmax(140px,1fr) 72px;align-items:center;gap:16px;padding:14px 0;display:grid}.progress-row h3{margin-bottom:2px;font-size:1rem}.track{background:#efe8de;border-radius:999px;height:8px;overflow:hidden}.track span{border-radius:inherit;background:linear-gradient(90deg,#2c6b4a,#c45c26);height:100%;display:block}.percent{text-align:right;font-weight:700}.table-wrap{position:relative;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:12px 10px}th{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem}.chip{background:var(--good-soft);color:var(--good);border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:700;display:inline-block}.chip.medium,.chip.watching{background:var(--warn-soft);color:var(--warn)}.chip.high,.chip.open{background:var(--risk-soft);color:var(--risk)}.chip.low{color:#2d4d73;background:#e8eef5}.chip.on-hold{background:var(--warn-soft);color:var(--warn)}.chip.completed{color:#2d4d73;background:#e8eef5}.btn{border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;padding:8px 14px;font-weight:600;display:inline-flex}.btn:hover{border-color:#cfc5b6}.btn:focus-visible,.icon-btn:focus-visible,.nav-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:#ad4f1f;border-color:#ad4f1f}.btn-small{padding:4px 10px;font-size:.85rem}.btn-danger{color:var(--risk)}.btn-danger:hover{background:var(--risk-soft);border-color:#e6c3be}.icon-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:4px 8px;font-size:1.5rem;line-height:1}.icon-btn:hover{background:var(--paper);color:var(--ink)}.panel-head.with-action{align-items:center}.toolbar{flex-wrap:wrap;align-items:center;gap:8px 16px;margin:12px 0 8px;display:flex}.toolbar p{margin:0}.search{flex:280px;max-width:420px}.search input,.field input,.field select,.field textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:9px 12px}.search input:focus,.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.notice{background:var(--warn-soft);color:var(--warn);border-radius:10px;margin:8px 0;padding:10px 12px;font-size:.9rem}.project-table td.num{white-space:nowrap}.actions{flex-direction:column;align-items:stretch;gap:6px;display:flex}.empty-row td{text-align:center;color:var(--muted);padding:24px 10px}.modal{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);width:min(640px,100vw - 32px);max-height:calc(100vh - 32px);color:var(--ink);padding:0;box-shadow:0 24px 60px #1c243040}.modal::backdrop{background:#12182073}.modal form{padding:20px}.modal-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.modal-head h2{margin:0;font-size:1.25rem}.form-grid{grid-template-columns:repeat(2,1fr);gap:14px 16px;display:grid}.field{flex-direction:column;gap:6px;font-size:.9rem;font-weight:600;display:flex}.field small{color:var(--muted);font-weight:400}.field.full{grid-column:1/-1}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.list{flex-direction:column;display:flex}.list article{border-top:1px solid var(--line);padding:16px 0}.list h3{margin-bottom:4px;font-size:1rem}.row-meta{flex-wrap:wrap;gap:8px 14px;margin-bottom:6px;display:flex}.btn:disabled,.btn[disabled]{opacity:.6;cursor:not-allowed}.notice.error,.auth-notice.error,.form-error{background:var(--risk-soft);color:var(--risk)}.form-error{border-radius:10px;margin:12px 0 0;padding:10px 12px;font-size:.9rem}.error-row td{color:var(--risk)}.error-row .btn{margin-left:8px}.spinner{border:2px solid var(--line);border-top-color:var(--accent);vertical-align:-2px;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.topbar-side{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:16px;display:flex}.account{align-items:center;gap:10px;display:flex}.account-name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:.9rem;overflow:hidden}.auth-screen{place-items:center;min-height:100vh;padding:32px 16px;display:grid}.auth-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);width:min(440px,100%);box-shadow:var(--shadow);padding:28px}.auth-brand{align-items:center;gap:12px;margin-bottom:24px;display:flex}.auth-brand strong{font-size:1.05rem;display:block}.auth-brand small{color:var(--muted)}.auth-title{margin-bottom:4px;font-size:1.5rem}.auth-form{flex-direction:column;gap:14px;margin-top:18px;display:flex}.auth-form .form-error,.auth-form .form-status{margin:0}.auth-submit{width:100%;padding:10px 14px}.field .field-error{color:var(--risk);font-weight:600}.field input[aria-invalid=true]{border-color:var(--risk)}.auth-notice{background:var(--good-soft);color:var(--good);border-radius:10px;margin:14px 0 0;padding:10px 12px;font-size:.9rem}.auth-details{color:var(--ink);margin:12px 0 0;padding-left:20px;font-size:.9rem}.auth-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.auth-switch{color:var(--muted);margin:18px 0 0;font-size:.9rem}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.link-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth-loading{color:var(--muted);align-items:center;gap:12px;display:flex}.auth-loading p{margin:0}@media (width<=980px){.cards{grid-template-columns:repeat(2,1fr)}.progress-row{grid-template-columns:1fr;gap:8px}.percent{text-align:left}}@media (width<=760px){.sidebar{transition:transform .2s;transform:translate(-105%)}.sidebar.is-open{transform:translate(0)}.main{margin-left:0;padding:20px 16px 40px}.menu-btn{display:inline-block}.today{display:none}.cards{grid-template-columns:1fr}.panel-head{flex-direction:column;gap:4px}thead{display:none}table,tbody,tr,td{width:100%;display:block}tr{border:1px solid var(--line);border-radius:12px;margin-bottom:12px;padding:8px}td{border:0;justify-content:space-between;gap:12px;padding:6px 8px;display:flex}td:before{content:attr(data-label);color:var(--muted);font-weight:600}.project-table td{text-align:right}.project-table td:before{text-align:left;flex-shrink:0}.project-table td.actions-cell{justify-content:flex-end;padding-top:10px}.project-table td.actions-cell:before{content:none}.project-table .actions{flex-direction:row}.empty-row td{justify-content:center}.panel-head.with-action{align-items:stretch}.search{max-width:none}.form-grid{grid-template-columns:1fr}.modal form{padding:16px}.topbar{align-items:flex-start}.account-name{display:none}.auth-card{padding:20px}}.team-invites-panel{margin-top:18px}.team-invite-form{grid-template-columns:minmax(220px,1fr) minmax(140px,180px) auto;align-items:end;gap:12px;margin:16px 0 22px;display:grid}.team-invite-form .field{min-width:0}.team-invite-form select,#view-team [data-team=role]{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;padding:8px 10px}#view-team td{vertical-align:middle}#view-team td .btn{margin:3px}.team-invite-link{background:var(--good-soft);border-radius:12px;flex-wrap:wrap;align-items:end;gap:10px;margin-top:14px;padding:14px;display:flex}.team-invite-link .field{flex:320px}.team-invite-link input{width:100%}@media (width<=760px){.team-invite-form{grid-template-columns:1fr}.team-invite-link{align-items:stretch}}.company-switcher{border:1px solid var(--line);background:var(--card);min-width:160px;max-width:220px;color:var(--ink);border-radius:10px;padding:6px 9px;font-size:.85rem}@media (width<=760px){.company-switcher{min-width:120px;max-width:170px}}.field textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:88px;color:var(--ink);font:inherit;background:#fff;border-radius:10px;padding:9px 12px}.field textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.project-header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.operation-history{padding:20px}.operation-history .modal-head{margin-bottom:8px}.amendment-timeline{flex-direction:column;gap:12px;max-height:min(62vh,620px);padding-right:4px;display:flex;overflow-y:auto}.amendment-version{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px}.amendment-version p{margin:8px 0 0}.amendment-version .row-meta{align-items:center}
