:root{--bg:#f6f4ef;--surface:#fff;--surface-soft:#fbf9f5;--ink:#1f4e5f;--muted:#5c605d;--line:#ece9e2;--border:#c9c4b9;--border-soft:#d8d4cb;--accent:#c98a3b;--accent-ink:#8b5e2a;--info-bg:#e3ecf7;--info-ink:#16467d;--info-strong:#1f5fa8;--doing-bg:#f5e8d4;--doing-ink:#7a4f1c;--neutral-bg:#ece9e2;--neutral-ink:#4a4e4b;--danger:#8b3a1e;--error:#b3261e;--hero-track:#3a3e3c;--hero-soft:#c9ccc8;--radius:14px;--nav-height:72px;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;font-family:Archivo,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-height:100dvh;margin:0}a{color:inherit;text-decoration:none}h1{margin:0;font-size:28px;font-weight:800;line-height:1.1}h2,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%;display:block}.page{max-width:560px;padding:calc(env(safe-area-inset-top) + 32px) 16px calc(var(--nav-height) + env(safe-area-inset-bottom) + 32px);margin:0 auto}.auth-page{flex-direction:column;gap:18px;padding-bottom:48px;display:flex}.brand{letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink);font-size:13px;font-weight:700}.stack{flex-direction:column;gap:16px;display:flex}.stack-sm{flex-direction:column;gap:10px;display:flex}.stack-xs{flex-direction:column;gap:3px;min-width:0;display:flex}.row{align-items:center;display:flex}.row-between{justify-content:space-between;align-items:center;gap:12px;display:flex}.gap-sm{gap:8px}.wrap{flex-wrap:wrap}.grow{flex:auto;min-width:0}.push{margin-left:auto}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.with-action-bar{padding-bottom:84px}.muted{color:var(--muted)}.small{font-size:13px}.strong{font-weight:600}.mono{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:13px}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:700}.section-title,.section-title h2{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:0 4px;font-size:13px;font-weight:700}.section-title .optional{letter-spacing:0;text-transform:none;font-weight:500}.link{color:var(--accent-ink);font-weight:600}.link:hover{text-decoration:underline}.error{color:var(--error);font-size:14px;font-weight:600}.field-error{color:var(--error);font-size:13px}.empty{color:var(--muted);text-align:center;padding:24px 0}.description{white-space:pre-line;line-height:1.5}.done-title{color:#6f6a60;text-decoration:line-through}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.page-header-text{flex-direction:column;gap:4px;min-width:0;display:flex}.back-link{min-height:44px;color:var(--muted);align-items:center;gap:4px;font-size:15px;font-weight:600;display:inline-flex}.card{background:var(--surface);border-radius:var(--radius);padding:16px}.card.compact{padding:6px 6px 6px 16px}.list{flex-direction:column;padding:4px 16px;display:flex}.list.flush{padding:0;overflow:hidden}.list-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:48px;padding:12px 0;display:flex}.list-row:last-child{border-bottom:0}.list.flush .list-row{padding:12px 16px}.list-row.column{flex-direction:column;align-items:stretch;gap:8px}.list-row.wrap{flex-wrap:wrap}a.list-row:hover{background:var(--surface-soft)}.task-row svg{color:#8a8e8b;flex-shrink:0}.project-card{flex-direction:column;gap:12px;display:flex}.project-card:hover{box-shadow:0 0 0 2px var(--border-soft)}.project-card .title{font-size:18px;font-weight:700}.project-card .percent{font-size:26px;font-weight:800}.project-card .pending{color:var(--info-ink);font-weight:700}.hero{background:var(--ink);color:#fff}.hero .small,.hero>span:first-child{color:var(--hero-soft)}.hero-percent{color:#fff;font-size:32px;font-weight:800}.hero-big{color:#fff;font-size:56px;font-weight:800;line-height:1}.hero-big small{margin-left:4px;font-size:24px}.amount{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:18px;font-weight:500}.total{border-top:1px solid var(--line);padding-top:8px;font-size:16px;font-weight:700}.notice{background:var(--info-bg);color:var(--info-ink);border-radius:var(--radius);padding:14px 16px;line-height:1.4}.notice.success{color:#24502e;background:#e2efe4}.notice.neutral{background:var(--neutral-bg);color:var(--neutral-ink)}.notice-link{background:var(--info-bg);color:var(--info-ink);border-radius:var(--radius);align-items:center;gap:14px;min-height:44px;padding:16px;display:flex}.badge{background:var(--info-strong);color:#fff;border-radius:20px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:17px;font-weight:700;display:flex}.date-box{flex-direction:column;flex-shrink:0;align-items:center;width:40px;display:flex}.date-box span{text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.date-box strong{font-size:20px;font-weight:800}.progress{background:var(--line);border-radius:4px;height:8px;overflow:hidden}.progress>div{background:var(--accent);border-radius:inherit;height:100%;transition:width .3s}.progress-ink>div{background:var(--ink)}.progress-dark{background:var(--hero-track);height:10px}.chip{white-space:nowrap;border-radius:6px;align-items:center;padding:3px 8px;font-size:12px;font-weight:700;display:inline-flex}.chip-todo{background:var(--neutral-bg);color:var(--neutral-ink)}.chip-in_progress{background:var(--doing-bg);color:var(--doing-ink)}.chip-pending_approval{background:var(--info-bg);color:var(--info-ink)}.chip-done{background:var(--ink);color:#fff}.chip-deleted{background:var(--neutral-bg);color:#6f6a60;text-decoration:line-through}.chip-category{background:var(--surface);color:var(--neutral-ink);border:1px solid var(--border);padding:2px 8px;font-weight:600}.chip-person{background:var(--ink);color:#fff;padding:2px 6px;font-size:11px}.chip-company{background:var(--neutral-bg);color:var(--ink);padding:2px 6px;font-size:11px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label,.field .label{font-size:14px;font-weight:700}input,select,textarea{border:1px solid var(--border);background:var(--surface);border-radius:10px;width:100%;min-width:0;min-height:44px;padding:0 12px;font-size:16px}textarea{resize:vertical;min-height:80px;padding:10px 12px;line-height:1.4}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.inline-form{align-items:center;gap:8px;padding:10px 0;display:flex}.button{cursor:pointer;text-align:center;border:1.5px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 18px;font-size:15px;font-weight:700;display:inline-flex}.button:disabled{cursor:not-allowed}.button.primary{background:var(--ink);color:#fff}.button.primary:disabled{color:#6f6a60;background:#e3e0d8}.button.secondary{background:var(--surface);border-color:var(--border);color:var(--ink)}.button.danger{border-color:var(--border);color:var(--danger);background:0 0}.button.danger-solid{background:var(--danger);color:#fff}.small-button{border-radius:10px;min-height:36px;padding:0 12px;font-size:14px}.with-icon{align-self:stretch}.confirm{grid-template-columns:1fr 1.4fr;gap:8px;display:grid}.icon-button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.icon-button.secondary{background:var(--ink)}.icon-button.ghost{color:var(--muted);background:0 0}.add-row{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:8px;min-height:48px;font-weight:700;display:flex}.filters{flex-wrap:wrap;gap:8px;display:flex}.filter{border:1px solid var(--border-soft);background:var(--surface);cursor:pointer;border-radius:18px;min-height:36px;padding:0 14px;font-size:14px;font-weight:600}.filter[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.tabs{background:var(--line);border-radius:12px;grid-template-columns:1fr 1fr;padding:4px;display:grid}.tab{cursor:pointer;background:0 0;border:0;border-radius:9px;min-height:40px;font-weight:700}.tab[aria-selected=true]{background:var(--surface);box-shadow:0 1px 2px #00000014}.tab .count{color:var(--muted);margin-left:4px;font-family:IBM Plex Mono,monospace;font-weight:500}.checkbox{background:var(--surface);width:28px;height:28px;color:var(--ink);cursor:pointer;border:2px solid #b8b2a5;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.checkbox.checked{background:var(--ink);color:#fff;border-color:var(--ink)}span.checkbox{cursor:default}.subtask-row{align-items:flex-start}.subtask-form{background:var(--surface-soft);padding:14px 16px}.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.photo{aspect-ratio:1;background:#dcd8cf;border-radius:10px;position:relative;overflow:hidden}.photo img{object-fit:cover;width:100%;height:100%}.photo-delete{color:#fff;cursor:pointer;background:#0000008c;border:0;border-radius:14px;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:absolute;top:4px;right:4px}.photo-add{aspect-ratio:1;color:var(--muted);cursor:pointer;background:0 0;border:1.5px dashed #b8b2a5;border-radius:10px;justify-content:center;align-items:center;display:flex}.approval-card{align-items:flex-start;gap:14px;display:flex}.cover{object-fit:cover;border-radius:10px;flex-shrink:0;width:84px;height:84px}.cover.placeholder{background:#dcd8cf}.bottom-nav{z-index:10;height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid #e0e1dd;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:11px;font-weight:600;display:flex}.bottom-nav a.active{color:var(--accent-ink);font-weight:700}.action-bar{z-index:11;left:0;right:0;bottom:calc(var(--nav-height) + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid #e0e1dd;gap:10px;padding:12px 16px;display:flex;position:fixed}.action-bar .button{flex:1}.action-bar .button.primary{flex:1.4}@media (width>=600px){.action-bar{border:1px solid #e0e1dd;border-radius:14px 14px 0 0;width:560px;left:50%;right:auto;transform:translate(-50%)}}input.readonly,textarea.readonly{background:var(--surface-soft);border-color:var(--line);color:var(--ink);cursor:default;resize:none}input.readonly:focus-visible,textarea.readonly:focus-visible{outline-color:var(--border)}.readonly.placeholder{color:var(--muted);font-style:italic}.checkbox.readonly{cursor:default}
