:root{--ink:#1a1a1a;--ink-2:#3d3d3d;--ink-3:#7a7a7a;--ink-4:#b5b1a8;--line-soft:#d4cfc1;--paper:#f5f1e8;--paper-2:#ece7d9;--card:#fbf8f1;--card-future:#efeadc;--accent:oklch(62% .12 200);--accent-soft:oklch(92% .04 200);--warn:oklch(60% .16 45);--warn-soft:oklch(93% .06 45);--warn-strong:oklch(54% .18 40);--done:oklch(58% .12 145);--done-soft:oklch(93% .05 145);--mono:"JetBrains Mono", ui-monospace, monospace;--sans:"Noto Sans JP", system-ui, sans-serif;--shadow:1.5px 1.5px 0 #1a1a1a0f;--shadow-lg:3px 3px 0 #1a1a1a14}*,:before,:after{box-sizing:border-box}html,body,#root{background:var(--paper);height:100%;color:var(--ink);font-family:var(--sans);margin:0;padding:0;font-size:14px;line-height:1.45}#root{flex-direction:column;display:flex}*,:before,:after{box-sizing:border-box;margin:0;padding:0}.pill{border:1px solid var(--ink);font-family:var(--mono);letter-spacing:.04em;background:var(--card);white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:9px;line-height:1.55;display:inline-flex}.pill.acc{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.pill.warn{background:var(--warn-soft);border-color:var(--warn);color:var(--warn);font-weight:500}.pill.warn-strong{background:var(--warn);color:var(--paper);border-color:var(--warn);font-weight:500}.pill.done{background:var(--done-soft);border-color:var(--done);color:var(--done)}.pill.ghost{color:var(--ink-3);border-style:dashed;border-color:var(--ink-3);background:0 0}.pill.solid{background:var(--ink);color:var(--paper);border-color:var(--ink)}.avatar{border:1px solid var(--ink);width:18px;height:18px;font-family:var(--mono);background:var(--paper-2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:9px;display:flex}.avatar.sm{width:14px;height:14px;font-size:8px}.topbar{border-bottom:1px solid var(--line-soft);background:var(--card);z-index:20;flex-shrink:0;justify-content:space-between;align-items:center;gap:14px;padding:10px 18px;display:flex}.topbar-l{align-items:center;gap:14px;display:flex}.brand{white-space:nowrap;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.topbar-nav{font-family:var(--mono);letter-spacing:.04em;gap:0;font-size:11px;display:flex}.nav-item{color:var(--ink-3);text-transform:uppercase;cursor:pointer;white-space:nowrap;padding:4px 10px;transition:color .12s}.nav-item:hover{color:var(--ink-2)}.nav-item.sel{color:var(--ink);border-bottom:1.5px solid var(--ink);font-weight:500}.search-box{border:1px solid var(--line-soft);background:var(--paper);cursor:pointer;min-width:240px;font-family:var(--mono);color:var(--ink-3);align-items:center;gap:6px;padding:5px 10px;font-size:10px;transition:border-color .12s;display:flex}.search-box:hover{border-color:var(--ink-3)}.search-ico{border:1px solid var(--ink-3);border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.search-label{flex:1}.search-box kbd{font-family:var(--mono);border:1px solid var(--line-soft);color:var(--ink-3);background:var(--card);padding:0 5px;font-size:9px}.topbar-r{align-items:center;gap:8px;display:flex}.topbar-r .avatar{border:1px solid var(--ink);width:18px;height:18px;font-family:var(--mono);background:var(--paper-2);border-radius:50%;justify-content:center;align-items:center;font-size:9px;display:flex}.panel-overlay{z-index:30;background:#1a1a1a26;position:fixed;inset:0}.slide-panel{border-left:1.5px solid var(--ink);background:var(--card);z-index:40;flex-direction:column;width:38%;min-width:340px;max-width:520px;animation:.18s cubic-bezier(.2,.7,.1,1) slideIn;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 #1a1a1a0f}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.panel-header{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:6px;padding:8px 12px;display:flex}.panel-header-left{flex:1;min-width:0}.panel-header-right{flex-shrink:0;align-items:center;gap:3px;display:flex}.panel-project-label{font-family:var(--mono);color:var(--ink-3);margin-right:6px;font-size:9.5px}.panel-type-row{flex-wrap:wrap;gap:3px;display:flex}.panel-type-btn{border:1px solid var(--line-soft);font-family:var(--mono);letter-spacing:.05em;cursor:pointer;color:var(--ink-3);background:0 0;border-radius:999px;padding:2px 7px;font-size:8.5px;transition:all .1s}.panel-type-btn:hover{border-color:var(--ink);color:var(--ink)}.panel-type-btn.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.panel-type-task.active{background:var(--warn);border-color:var(--warn)}.panel-type-file.active{background:var(--accent);border-color:var(--accent)}.panel-type-status.active{background:var(--done);border-color:var(--done)}.panel-type-mtg.active{background:var(--ink);border-color:var(--ink)}.panel-btn{cursor:pointer;color:var(--ink-3);background:0 0;border:none;border-radius:2px;padding:2px 6px;font-size:14px;line-height:1}.panel-btn:hover{color:var(--ink);background:var(--paper-2)}.panel-body{flex-direction:column;flex:1;padding:0 16px 16px;display:flex;overflow-y:auto}.panel-section{border-bottom:1px solid var(--line-soft);padding:12px 0}.panel-section:last-child{border-bottom:none}.panel-title-section{padding-top:14px}.panel-breadcrumb{font-family:var(--mono);color:var(--ink-3);letter-spacing:.04em;margin-bottom:6px;font-size:9px}.panel-title-input{width:100%;font-family:var(--sans);color:var(--ink);background:0 0;border:none;border-bottom:1.5px solid #0000;outline:none;padding:0;font-size:16px;font-weight:700;line-height:1.3;transition:border-color .12s}.panel-title-input:hover{border-bottom-color:var(--line-soft)}.panel-title-input:focus{border-bottom-color:var(--ink)}.panel-title-input::placeholder{color:var(--ink-4);font-weight:400}.panel-meta-grid{font-family:var(--mono);grid-template-columns:56px 1fr;align-items:center;gap:6px 10px;font-size:10px;display:grid}.meta-key{color:var(--ink-3);white-space:nowrap;letter-spacing:.04em;font-size:9.5px}.meta-val{color:var(--ink);align-items:center;gap:4px;font-weight:500;display:flex}.panel-select,.panel-date-input{font-family:var(--mono);color:var(--ink);cursor:pointer;background:0 0;border:none;border-bottom:1px solid #0000;outline:none;width:100%;padding:1px 0;font-size:10px;font-weight:500;transition:border-color .12s}.panel-select:hover,.panel-date-input:hover{border-bottom-color:var(--line-soft)}.panel-select:focus,.panel-date-input:focus{border-bottom-color:var(--ink)}.panel-desc-input{width:100%;font-family:var(--sans);color:var(--ink-2);resize:none;background:0 0;border:none;border-bottom:1px solid #0000;outline:none;padding:0;font-size:12px;line-height:1.6;transition:border-color .12s}.panel-desc-input:hover{border-bottom-color:var(--line-soft)}.panel-desc-input:focus{border-bottom-color:var(--ink);color:var(--ink)}.panel-desc-input::placeholder{color:var(--ink-4)}.section-label{font-family:var(--mono);color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:9px}.subtask-list{flex-direction:column;gap:6px;display:flex}.subtask-row{align-items:center;gap:8px;font-size:12px;display:flex}.attachment-list{flex-wrap:wrap;gap:6px;display:flex}.comment{margin-bottom:10px}.comment-header{align-items:center;gap:5px;margin-bottom:4px;display:flex}.comment-author{font-family:var(--mono);font-size:10px;font-weight:500}.comment-date{font-family:var(--mono);color:var(--ink-3);font-size:9px}.comment-body{color:var(--ink-2);margin:0;font-size:12px;line-height:1.5}.comment-input{border:1px solid var(--line-soft);background:var(--paper);width:100%;font-family:var(--sans);resize:none;color:var(--ink);margin-top:8px;padding:8px 10px;font-size:12px}.comment-input:focus{border-color:var(--ink);outline:none}.panel-actions{flex-wrap:wrap;gap:6px;display:flex}.panel-action-btn{border:1px solid var(--ink);background:var(--card);font-family:var(--mono);cursor:pointer;color:var(--ink);border-radius:999px;padding:5px 12px;font-size:10px;transition:background .12s}.panel-action-btn:hover{background:var(--paper-2)}.panel-action-btn.primary{background:var(--ink);color:var(--paper)}.panel-action-btn.primary:hover{opacity:.85}.panel-action-btn.danger{border-color:var(--ink-3);color:var(--ink-3)}.panel-action-btn.danger:hover{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}.cp-bg{z-index:50;background:#1a1a1a33;justify-content:center;align-items:flex-start;padding-top:80px;display:flex;position:fixed;inset:0}.cp-wrap{width:62%;max-width:540px}.cp{background:var(--card);border:1.5px solid var(--ink);flex-direction:column;display:flex;box-shadow:5px 5px #1a1a1a1f}.cp-input-row{border-bottom:1px solid var(--line-soft);align-items:center;gap:8px;padding:11px 16px;display:flex}.cp-prompt{font-family:var(--mono);color:var(--ink-3);flex-shrink:0;font-size:12px}.cp-prompt.cmd{color:var(--accent);font-weight:700}.cp-query{font-family:var(--sans);color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:13px;font-weight:500}.cp-query::placeholder{color:var(--ink-3);font-weight:400}.cp-input-row kbd{font-family:var(--mono);border:1px solid var(--line-soft);color:var(--ink-3);padding:1px 5px;font-size:9px}.cp-results{max-height:360px;overflow-y:auto}.cp-group{font-family:var(--mono);color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;padding:8px 16px 3px;font-size:9px}.cp-result{cursor:pointer;align-items:center;gap:10px;padding:6px 16px;font-size:12px;transition:background 80ms;display:flex}.cp-result:hover{background:var(--paper-2)}.cp-result.sel{background:var(--accent-soft)}.cp-kind{width:52px;font-family:var(--mono);color:var(--ink-3);text-transform:uppercase;flex-shrink:0;font-size:9px}.cp-result.sel .cp-kind{color:var(--accent)}.cp-name{flex:1}.cp-ctx,.cp-sk{font-family:var(--mono);color:var(--ink-3);font-size:9px}.cp-empty{font-family:var(--mono);color:var(--ink-3);text-align:center;padding:20px 16px;font-size:11px}.cp-preview{border-bottom:1px solid var(--line-soft);padding:6px 16px 12px}.preview-label{font-family:var(--mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;font-size:9px}.ent{border:1px solid var(--ink);background:var(--card);flex-direction:column;gap:5px;padding:8px 10px;font-size:10.5px;display:flex;position:relative}.ent.task{border-left:3px solid var(--warn)}.ent-row{align-items:center;gap:6px;display:flex}.ent-title{color:var(--ink-3);font-size:11.5px;font-weight:600}.cp-footer{border-top:1px solid var(--line-soft);font-family:var(--mono);color:var(--ink-3);justify-content:space-between;padding:8px 16px;font-size:9px;display:flex}.card{border:1px solid var(--ink);background:var(--card);cursor:pointer;border-left-style:solid;border-left-width:3px;flex-direction:column;gap:5px;padding:8px 10px;font-size:10.5px;transition:background .12s;display:flex;position:relative}.card:hover{background:var(--paper-2)}.card-task{border-left-color:var(--warn)}.card-log{border-left-color:var(--ink-3);border-left-style:dashed}.card-file{border-left-color:var(--accent)}.card-status{border-left-color:var(--done)}.card-mtg{border-left-color:var(--ink)}.card-contact{border-left-color:var(--accent)}.card-comment{border-left-color:var(--ink-3)}.card-future-state{background:var(--card-future);color:var(--ink-3);box-shadow:none}.card-overdue{background:var(--warn-soft);border-left-color:var(--warn-strong);border-left-width:4px}.card-urgent{background:var(--warn-soft);border-left-width:4px}.card-done{opacity:.55}.card-done .card-title{text-decoration:line-through}.card-row{justify-content:space-between;align-items:center;gap:6px;display:flex}.card-meta-left,.card-meta-right{align-items:center;gap:5px;display:flex}.card-type-label{font-family:var(--mono);color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-size:9px}.card-deadline{font-family:var(--mono);color:var(--ink-3);font-size:9px}.card-title{font-size:11.5px;font-weight:600;line-height:1.3}.card-desc{color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:10px;line-height:1.45;display:-webkit-box;overflow:hidden}.card-subtasks{flex-direction:column;gap:3px;margin-top:2px;display:flex}.card-subtask-row{align-items:center;gap:5px;font-size:10px;display:flex}.card-footer{justify-content:space-between;align-items:center;margin-top:2px;display:flex}.card-footer-l{align-items:center;gap:4px;display:flex}.card-assignee{font-family:var(--mono);color:var(--ink-3);font-size:9px}.card-attachment{color:var(--ink-3);font-size:9px}.card-sub-progress{font-family:var(--mono);color:var(--ink-3);font-size:9px}.inserter{cursor:pointer;opacity:0;justify-content:center;align-items:center;height:8px;transition:opacity .12s;display:flex;position:relative}.inserter:hover{opacity:1}.inserter:before{content:"";border-top:1px dashed var(--ink);position:absolute;top:50%;left:6px;right:6px}.ins-btn{border:1px solid var(--ink);background:var(--card);width:18px;height:18px;font-family:var(--mono);z-index:1;border-radius:50%;justify-content:center;align-items:center;font-size:12px;line-height:1;display:flex;position:relative}.np-overlay{z-index:50;background:#1a1a1a40;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.np-form{background:var(--card);border:1.5px solid var(--ink);flex-direction:column;width:440px;display:flex;box-shadow:5px 5px #1a1a1a1a}.np-header{border-bottom:1.5px solid var(--ink);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.np-heading{font-size:14px;font-weight:700}.np-close{cursor:pointer;color:var(--ink-3);background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.np-close:hover{color:var(--ink)}.np-body{flex-direction:column;gap:14px;padding:16px;display:flex}.np-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.np-field{flex-direction:column;gap:5px;display:flex}.np-label{font-family:var(--mono);color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-size:9.5px}.np-required{color:var(--warn)}.np-input{border:1px solid var(--line-soft);background:var(--paper);font-family:var(--sans);color:var(--ink);outline:none;width:100%;padding:6px 10px;font-size:12px}.np-input:focus{border-color:var(--ink)}.np-input-lg{padding:8px 10px;font-size:14px;font-weight:500}.np-status-row{flex-wrap:wrap;gap:5px;display:flex}.np-status-btn{border:1px solid var(--line-soft);background:var(--paper);font-family:var(--mono);cursor:pointer;color:var(--ink-3);border-radius:999px;padding:4px 12px;font-size:9.5px;transition:all .1s}.np-status-btn:hover{border-color:var(--ink);color:var(--ink)}.np-status-btn.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.np-footer{border-top:1px solid var(--line-soft);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.np-cancel{border:1px solid var(--line-soft);font-family:var(--mono);cursor:pointer;color:var(--ink-3);background:0 0;border-radius:999px;padding:6px 16px;font-size:10px}.np-cancel:hover{background:var(--paper-2);color:var(--ink)}.np-submit{border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-family:var(--mono);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 18px;font-size:10px;display:flex}.np-submit:hover{opacity:.85}.np-submit:disabled{opacity:.4;cursor:default}.np-submit kbd{font-family:var(--mono);color:#f5f1e8b3;border:1px solid #f5f1e866;padding:0 4px;font-size:9px}.home-screen{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.urgent-strip{background:var(--paper-2);border-bottom:1.5px solid var(--ink);flex-shrink:0;padding:14px 18px 12px}.urgent-strip-header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.urgent-title{font-size:13px;font-weight:700}.urgent-sub{font-family:var(--mono);color:var(--ink-3);margin-right:auto;font-size:10px}.urgent-filters{flex-wrap:wrap;gap:5px;display:flex}.urgent-cards-row{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.urgent-card{border:1px solid var(--ink);cursor:pointer;width:160px;box-shadow:var(--shadow);flex-direction:column;flex-shrink:0;gap:4px;padding:8px 10px;transition:opacity .12s;display:flex}.urgent-card:hover{opacity:.85}.uc-overdue{background:var(--warn);color:var(--paper);border-color:var(--warn-strong)}.uc-today{background:var(--warn-soft);border:1.5px solid var(--warn)}.uc-tomorrow{background:var(--card);border:1px dashed var(--warn)}.uc-muted{background:var(--card);opacity:.65}.uc-row1{justify-content:space-between;align-items:center;display:flex}.uc-when{font-family:var(--mono);letter-spacing:.04em;font-size:9px}.uc-overdue .uc-when{color:#f5f1e8cc}.uc-title{font-size:12px;font-weight:600;line-height:1.3}.uc-proj{font-family:var(--mono);color:var(--ink-3);align-items:center;gap:4px;font-size:9px;display:flex}.uc-overdue .uc-proj{color:#f5f1e8b3}.urgent-empty{font-family:var(--mono);color:var(--ink-3);padding:8px 0;font-size:11px}.kanban-toolbar{border-bottom:1px solid var(--line-soft);background:var(--paper-2);flex-shrink:0;padding:6px 18px}.future-fold-btn{cursor:pointer;font-family:var(--mono);color:var(--ink-3);letter-spacing:.04em;background:0 0;border:none;align-items:center;gap:8px;padding:3px 0;font-size:10px;display:flex}.future-fold-btn:hover{color:var(--ink)}.future-fold-count{background:var(--card-future);border:1px solid var(--line-soft);border-radius:999px;padding:1px 8px;font-size:9px}.future-fold-action{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.kanban{flex:1;align-items:flex-start;gap:12px;min-height:0;padding:14px 18px;display:flex;overflow:auto hidden}.project-column[draggable]{cursor:grab}.project-column[draggable]:active{cursor:grabbing}.drop-line{background:var(--accent);border-radius:2px;flex-shrink:0;align-self:stretch;width:3px;position:relative}.drop-line:before,.drop-line:after{content:"";background:var(--accent);border-radius:50%;width:10px;height:10px;position:absolute;left:50%;transform:translate(-50%)}.drop-line:before{top:0}.drop-line:after{bottom:0}.project-column{border:1.25px solid var(--ink);background:var(--card);min-width:240px;box-shadow:var(--shadow);flex-direction:column;flex:0 0 240px;max-height:100%;padding:10px;display:flex;overflow:hidden}.col-head{align-items:center;gap:6px;margin-bottom:6px;display:flex}.col-menu-wrap{flex-shrink:0;margin-left:auto;position:relative}.col-menu-btn{cursor:pointer;color:var(--ink-3);opacity:0;background:0 0;border:none;border-radius:2px;padding:0 4px;font-size:14px;line-height:1;transition:opacity .12s}.project-column:hover .col-menu-btn{opacity:1}.col-menu-btn:hover{color:var(--ink);background:var(--paper-2)}.col-menu{z-index:20;background:var(--card);border:1.5px solid var(--ink);min-width:120px;padding:4px 0;position:absolute;top:100%;right:0;box-shadow:3px 3px #1a1a1a14}.col-menu-item{cursor:pointer;width:100%;font-family:var(--mono);color:var(--ink);text-align:left;letter-spacing:.03em;background:0 0;border:none;padding:7px 14px;font-size:10px;display:block}.col-menu-item:hover{background:var(--paper-2)}.col-name{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;flex:1;font-size:12px;font-weight:700;overflow:hidden}.col-name:hover{text-underline-offset:2px;text-decoration:underline}.col-meta{align-items:center;gap:5px;margin-bottom:6px;display:flex}.col-client{font-family:var(--mono);color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:9px;overflow:hidden}.col-deadline{font-family:var(--mono);color:var(--ink-3);white-space:nowrap;font-size:9px}.col-progress{align-items:center;gap:6px;margin-bottom:8px;display:flex}.progress-bar{background:var(--line-soft);border-radius:1px;flex:1;height:3px;overflow:hidden}.progress-fill{background:var(--ink);border-radius:1px;height:100%}.progress-pct{font-family:var(--mono);color:var(--ink-3);white-space:nowrap;font-size:9px}.col-entries{flex-direction:column;flex:1;gap:0;display:flex;overflow-y:auto}.group-header{font-family:var(--mono);color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;align-items:center;gap:8px;padding:6px 2px 2px;font-size:9.5px;display:flex}.group-header:after{content:"";background:var(--line-soft);flex:1;height:1px}.future-group{color:var(--ink-4)}.col-empty{font-family:var(--mono);color:var(--ink-4);text-align:center;padding:12px 4px;font-size:10px}.col-empty-clickable{cursor:pointer;border:1px dashed var(--line-soft);border-radius:2px;transition:all .12s}.col-empty-clickable:hover{color:var(--ink-2);border-color:var(--ink-3);background:var(--paper-2)}.new-column{box-shadow:none;cursor:pointer;background:0 0;border-style:dashed;justify-content:center;align-items:center;min-height:80px}.new-col-inner{font-family:var(--mono);color:var(--ink-3);text-align:center;font-size:11px}.new-column:hover .new-col-inner{color:var(--ink)}.tasks-screen{flex:1;min-height:0;display:flex;overflow:hidden}.tasks-sidebar{border-right:1px solid var(--line-soft);background:var(--paper-2);flex-shrink:0;width:200px;padding:12px 0;overflow-y:auto}.sidebar-group{margin-bottom:16px}.sidebar-group-label{font-family:var(--mono);color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;padding:4px 14px;font-size:9.5px}.sidebar-item{cursor:pointer;align-items:center;gap:5px;padding:5px 14px;font-size:12px;transition:background .12s;display:flex}.sidebar-item:hover{background:var(--paper)}.sidebar-item.sel{background:var(--card);border-left:2px solid var(--ink);font-weight:500}.task-page{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.task-page-head{border-bottom:1px solid var(--line-soft);background:var(--card);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.task-page-head h2{margin:0;font-size:18px;font-weight:700}.task-stats{gap:14px;display:flex}.stat{border-right:1px solid var(--line-soft);flex-direction:column;align-items:flex-end;padding-right:14px;display:flex}.stat:last-child{border-right:none;padding-right:0}.stat-n{font-family:var(--mono);font-size:20px;font-weight:700;line-height:1}.urgent-n{color:var(--warn)}.task-page-tools{border-bottom:1px solid var(--line-soft);background:var(--card);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 20px;display:flex}.task-table-head{background:var(--paper-2);border-bottom:1px solid var(--ink);font-family:var(--mono);color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;grid-template-columns:18px 1fr 130px 90px 100px 50px;align-items:center;gap:14px;padding:7px 20px;font-size:9.5px;display:grid}.task-table{flex:1;overflow-y:auto}.section-head{background:var(--paper-2);border-bottom:1px solid var(--line-soft);z-index:2;align-items:center;gap:10px;padding:7px 20px;display:flex;position:sticky;top:0}.section-head-urgent{background:var(--warn-soft);border-bottom-color:var(--warn)}.section-head.fold{cursor:pointer}.sh-label{font-family:var(--mono);white-space:nowrap;font-size:10px;font-weight:500}.sh-count{font-family:var(--mono);color:var(--ink-3);white-space:nowrap;font-size:9px}.sh-line{background:var(--line-soft);flex:1;height:1px}.task-row{border-bottom:1px solid var(--line-soft);background:var(--card);cursor:pointer;grid-template-columns:18px 1fr 130px 90px 100px 50px;align-items:center;gap:14px;padding:9px 20px;transition:background .12s;display:grid}.task-row:hover{background:var(--paper-2)}.task-row.row-overdue,.task-row.row-today{background:var(--warn-soft)}.task-row.row-future{background:var(--card-future);color:var(--ink-3);opacity:.8}.task-row.row-done{opacity:.55}.task-row.row-done .tr-title{text-decoration:line-through}.tr-title{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.tr-deadline{align-items:center;display:flex}.tr-project{font-family:var(--mono);color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.tr-assignee{font-family:var(--mono);color:var(--ink-3);align-items:center;gap:4px;font-size:10px;display:flex}.tr-actions{justify-content:flex-end;display:flex}.tr-btn{cursor:pointer;color:var(--ink-3);background:0 0;border:none;padding:2px 4px;font-size:12px}.tr-btn:hover{color:var(--ink)}.tr-no-deadline{color:var(--ink-4);font-family:var(--mono);font-size:10px}.task-empty{text-align:center;font-family:var(--mono);color:var(--ink-3);padding:40px 20px;font-size:11px}.gantt-page{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.gantt-head{border-bottom:1px solid var(--line-soft);background:var(--card);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;display:flex}.gh-l{align-items:center;gap:10px;display:flex}.gh-l b{font-size:14px}.gh-r{align-items:center;gap:5px;display:flex}.gantt-tools{border-bottom:1px solid var(--line-soft);background:var(--card);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:7px 18px;display:flex}.gantt-legend{align-items:center;gap:10px;margin-left:auto;display:flex}.gantt-grid{flex:1;grid-template-columns:170px 1fr;min-height:0;display:grid;position:relative;overflow:hidden}.gantt-labels{border-right:1.5px solid var(--ink);background:var(--paper-2);flex-direction:column;display:flex;overflow:hidden}.g-axis-spacer{border-bottom:1px solid var(--line-soft);flex-shrink:0;height:28px}.g-row-label{border-bottom:1px solid var(--line-soft);flex-direction:column;flex-shrink:0;justify-content:center;gap:3px;height:60px;padding:8px 14px;display:flex}.g-rl-name{font-size:11.5px;font-weight:700}.g-rl-meta{font-family:var(--mono);color:var(--ink-3);font-size:9px}.gantt-bars-area{flex-direction:column;display:flex;position:relative;overflow-x:auto}.g-axis{font-family:var(--mono);color:var(--ink-3);border-bottom:1px solid var(--line-soft);background:var(--paper-2);flex-shrink:0;grid-template-columns:repeat(14,1fr);height:28px;font-size:9px;display:grid}.g-axis-cell{border-left:1px solid var(--line-soft);justify-content:center;align-items:center;display:flex}.g-axis-cell:first-child{border-left:none}.g-axis-cell.wk{background:var(--paper);color:var(--ink);font-weight:500}.g-axis-cell.wknd{background:var(--card-future);color:var(--ink-4)}.g-today{border-left:1.5px solid var(--warn);z-index:4;pointer-events:none;width:0;position:absolute;top:28px;bottom:0}.g-today:before{content:"今日";font-family:var(--mono);background:var(--warn);color:var(--paper);letter-spacing:.05em;padding:1px 5px;font-size:9px;position:absolute;top:-22px;left:-13px}.g-row-bars{border-bottom:1px solid var(--line-soft);background-image:linear-gradient(to right, var(--line-soft) 1px, transparent 1px);background-size:7.14286% 100%;flex-shrink:0;height:60px;position:relative}.wknd-bg{background:var(--card-future);opacity:.4;position:absolute;top:0;bottom:0}.gbar{border:1px solid var(--ink);background:var(--card);height:20px;font-size:9px;font-family:var(--mono);color:var(--ink);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;align-items:center;padding:0 6px;transition:opacity .12s;display:flex;position:absolute;overflow:hidden;box-shadow:1px 1px #1a1a1a14}.gbar:hover{opacity:.85}.gbar.task{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}.gbar.mtg{background:var(--card);border-color:var(--ink)}.gbar.file{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.gbar.done{background:var(--done-soft);border-color:var(--done);color:var(--done);opacity:.75;text-decoration:line-through}.gbar.future{background:var(--card-future);border-color:var(--ink-4);color:var(--ink-3);opacity:.8;box-shadow:none;border-style:dashed}.gbar.overdue{background:var(--warn);border-color:var(--warn-strong);color:var(--paper);font-weight:500}.gbar{-webkit-user-select:none;user-select:none;align-items:center;display:flex}.gbar.sel{outline:2px solid var(--ink);outline-offset:2px;z-index:3}.gbar.dragging-bar{opacity:.4;pointer-events:none}.gbar-handle-l,.gbar-handle-r{cursor:ew-resize;opacity:0;flex-shrink:0;width:8px;height:100%;transition:opacity .1s}.gbar:hover .gbar-handle-l,.gbar:hover .gbar-handle-r{opacity:1;background:#00000026;border-radius:2px}.gbar-handle-l{margin-right:2px}.gbar-handle-r{margin-left:auto}.gbar-label{text-overflow:ellipsis;white-space:nowrap;pointer-events:none;flex:1;overflow:hidden}.ghost-bar{opacity:.85;pointer-events:none;z-index:5;background:var(--accent-soft)!important;border:1.5px dashed var(--accent)!important;color:var(--accent)!important}.gantt-detail{border-top:1.5px solid var(--ink);background:var(--paper-2);flex-shrink:0;grid-template-columns:1.3fr 1fr;gap:20px;padding:12px 18px;display:grid}.gantt-detail h4{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 4px;font-size:13px;font-weight:700;display:flex}.gd-meta-grid{font-family:var(--mono);color:var(--ink-3);grid-template-columns:auto 1fr;gap:3px 12px;margin-top:6px;font-size:10px;display:grid}.gd-meta-grid b{color:var(--ink);font-weight:500}.gd-body{color:var(--ink-2);margin-top:8px;font-size:11px;line-height:1.55}.gd-replay{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.check{border:1.25px solid var(--ink);background:var(--card);border-radius:2px;flex-shrink:0;width:12px;height:12px;display:inline-block;position:relative}.check.on{background:var(--ink)}.check.on:after{content:"";border:solid var(--paper);border-width:0 1.5px 1.5px 0;width:4px;height:7px;position:absolute;top:0;left:2px;transform:rotate(45deg)}.cal-page{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.cal-head{border-bottom:1px solid var(--line-soft);background:var(--card);flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:10px 18px;display:flex}.ch-l{align-items:center;gap:7px;display:flex}.ch-l b{font-size:15px}.ch-r{gap:5px;display:flex}.cal-tools{border-bottom:1px solid var(--line-soft);background:var(--card);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:7px 18px;display:flex}.cal-legend{align-items:center;gap:10px;margin-left:auto;display:flex}.cal-dow{border-bottom:1px solid var(--line-soft);background:var(--paper-2);flex-shrink:0;grid-template-columns:repeat(7,1fr);display:grid}.dow-cell{font-family:var(--mono);color:var(--ink-3);text-align:center;border-left:1px solid var(--line-soft);letter-spacing:.06em;padding:5px 8px;font-size:9.5px}.dow-cell:first-child{border-left:none}.dow-cell.sat{color:var(--accent)}.dow-cell.sun{color:var(--warn)}.cal-grid{flex:1;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;min-height:0;display:grid;overflow:hidden}.cal-add-hint{font-family:var(--mono);color:var(--line-soft);opacity:0;font-size:9px;transition:opacity .1s}.cal-cell:hover .cal-add-hint{opacity:1;color:var(--ink-3)}.cal-cell{cursor:pointer;border-left:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);background:var(--card);flex-direction:column;gap:3px;min-height:0;padding:5px 6px;display:flex;overflow:hidden}.cal-cell:nth-child(7n+1){border-left:none}.dn{font-family:var(--mono);color:var(--ink-2);justify-content:space-between;align-items:center;font-size:10px;font-weight:500;display:flex}.cal-cell.other{background:var(--paper-2)}.cal-cell.other .dn{color:var(--ink-4)}.cal-cell.today{background:var(--warn-soft)}.cal-cell.today .dn{color:var(--warn);font-weight:700}.cal-cell.future{background:var(--card-future)}.cal-cell.future .dn{color:var(--ink-3)}.ev{border:1px solid var(--ink);background:var(--card);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;align-items:center;gap:3px;padding:1px 4px;font-size:9px;transition:opacity .12s;display:flex;overflow:hidden}.ev:hover{opacity:.8}.ev-dot{background:var(--ink);border-radius:50%;flex-shrink:0;width:5px;height:5px}.ev.task{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}.ev.task .ev-dot{background:var(--warn)}.ev.mtg{background:var(--card);border-color:var(--ink)}.ev.file{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.ev.file .ev-dot{background:var(--accent)}.ev.overdue{background:var(--warn);border-color:var(--warn-strong);color:var(--paper);font-weight:500}.ev.future{opacity:.7;border-style:dashed}.more{font-family:var(--mono);color:var(--ink-3);padding-left:4px;font-size:8.5px}.cal-timeline-placeholder{color:var(--ink-3);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.sub{font-family:var(--mono);color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-size:9px}.meta{font-family:var(--mono);color:var(--ink-3);font-size:9px}.arc-page{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.arc-head{border-bottom:1px solid var(--line-soft);background:var(--card);flex-shrink:0;justify-content:space-between;align-items:flex-end;gap:12px;padding:14px 20px;display:flex}.arc-head h2{margin:0;font-size:17px;font-weight:700}.arc-desc{font-family:var(--mono);color:var(--ink-3);margin-top:3px;font-size:10px}.arc-stats{display:flex}.arc-stat{text-align:right;border-right:1px solid var(--line-soft);margin-right:14px;padding-right:14px}.arc-stat.last{border-right:none;margin-right:0;padding-right:0}.stat-n{font-size:22px;font-weight:700;font-family:var(--mono);line-height:1}.done-n{color:var(--done)}.stat-l{font-family:var(--mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;margin-top:2px;font-size:9.5px}.arc-tools{border-bottom:1px solid var(--line-soft);background:var(--card);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 20px;display:flex}.arc-tools-l,.arc-tools-r{align-items:center;gap:6px;display:flex}.arc-thead{background:var(--paper-2);border-bottom:1px solid var(--ink);font-family:var(--mono);color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;grid-template-columns:18px 1fr 90px 110px 120px 70px 90px;align-items:center;gap:12px;padding:8px 20px;font-size:9.5px;display:grid}.arc-list{flex:1;overflow-y:auto}.arc-item{border-bottom:1px solid var(--line-soft)}.arc-row{background:var(--card);cursor:pointer;grid-template-columns:18px 1fr 90px 110px 120px 70px 90px;align-items:center;gap:12px;padding:11px 20px;transition:background .12s;display:grid}.arc-row:hover,.arc-row.expanded{background:var(--paper-2)}.arc-row.cancelled{opacity:.7}.arc-chevron{font-family:var(--mono);color:var(--ink-3);font-size:9px;transition:transform .12s}.arc-title{flex-direction:column;gap:2px;display:flex;overflow:hidden}.arc-title h4{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12.5px;font-weight:600;overflow:hidden}.arc-client{font-family:var(--mono);color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:9px;overflow:hidden}.arc-cell{font-family:var(--mono);color:var(--ink-2);align-items:center;gap:5px;font-size:10px;display:flex}.arc-period{font-size:9px}.arc-actions{justify-content:flex-end}.arc-btn{border:1px solid var(--ink);background:var(--card);font-family:var(--mono);cursor:pointer;color:var(--ink);border-radius:999px;padding:3px 10px;font-size:9.5px;transition:all .12s}.arc-btn:hover{background:var(--paper-2)}.arc-btn-more{border-color:var(--line-soft);color:var(--ink-3);padding:3px 8px}.arc-btn-delete{border-color:var(--line-soft);color:var(--ink-3)}.arc-btn-delete:hover{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}.arc-confirm-overlay{z-index:60;background:#1a1a1a4d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.arc-confirm{background:var(--card);border:1.5px solid var(--ink);flex-direction:column;gap:12px;width:360px;padding:24px 28px;display:flex;box-shadow:5px 5px #1a1a1a1a}.arc-confirm-title{margin:0;font-size:15px;font-weight:700}.arc-confirm-body{color:var(--ink-2);margin:0;font-size:13px;line-height:1.6}.arc-confirm-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.arc-confirm-cancel{border:1px solid var(--line-soft);font-family:var(--mono);cursor:pointer;color:var(--ink-3);background:0 0;border-radius:999px;padding:6px 16px;font-size:10px}.arc-confirm-cancel:hover{background:var(--paper-2);color:var(--ink)}.arc-confirm-delete{border:1px solid var(--warn);background:var(--warn);color:var(--paper);font-family:var(--mono);cursor:pointer;border-radius:999px;padding:6px 16px;font-size:10px}.arc-confirm-delete:hover{opacity:.85}.arc-empty{text-align:center;font-family:var(--mono);color:var(--ink-3);padding:40px 20px;font-size:11px}.arc-cards{background:var(--paper);border-top:1px solid var(--line-soft);padding:16px 20px 20px}.arc-cards-header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.arc-cards-title{font-family:var(--mono);color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-size:9.5px}.arc-cards-count{font-family:var(--mono);color:var(--ink-4);background:var(--paper-2);border:1px solid var(--line-soft);border-radius:999px;padding:1px 7px;font-size:9px}.arc-cards-empty{font-family:var(--mono);color:var(--ink-4);padding:12px 0;font-size:10px}.arc-cards-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;display:grid}.arc-card{border:1px solid var(--ink);background:var(--card);cursor:pointer;border-left-style:solid;border-left-width:3px;flex-direction:column;gap:4px;padding:8px 10px;transition:opacity .12s;display:flex}.arc-card:hover{opacity:.8}.arc-card-task{border-left-color:var(--warn)}.arc-card-log{border-left-color:var(--ink-3);border-left-style:dashed}.arc-card-file{border-left-color:var(--accent)}.arc-card-status{border-left-color:var(--done)}.arc-card-mtg{border-left-color:var(--ink)}.arc-card-contact{border-left-color:var(--accent)}.arc-card-comment{border-left-color:var(--ink-3)}.arc-card-done{opacity:.55}.arc-card-row{align-items:center;gap:5px;display:flex}.arc-card-type{font-family:var(--mono);color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;flex:1;font-size:8.5px}.arc-card-date{font-family:var(--mono);color:var(--ink-3);font-size:8.5px}.arc-card-title{font-size:11px;font-weight:600;line-height:1.3}.arc-card-done .arc-card-title{text-decoration:line-through}.arc-card-desc{color:var(--ink-3);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:9.5px;line-height:1.4;display:-webkit-box;overflow:hidden}.arc-card-subs{flex-direction:column;gap:3px;display:flex}.arc-sub-row{align-items:center;gap:5px;font-size:9.5px;display:flex}.arc-card-footer{font-family:var(--mono);color:var(--ink-3);align-items:center;gap:4px;margin-top:2px;font-size:9px;display:flex}.proj-detail{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.pd-header{border-bottom:1.5px solid var(--ink);background:var(--card);flex-shrink:0;align-items:flex-start;gap:16px;padding:16px 24px;display:flex}.pd-back{cursor:pointer;font-family:var(--mono);color:var(--ink-3);white-space:nowrap;background:0 0;border:none;margin-top:6px;padding:4px 0;font-size:10px}.pd-back:hover{color:var(--ink)}.pd-header-body{flex-direction:column;flex:1;gap:10px;display:flex}.pd-name-input{font-family:var(--sans);color:var(--ink);letter-spacing:.01em;background:0 0;border:none;border-bottom:2px solid #0000;outline:none;width:100%;padding:0;font-size:22px;font-weight:700;transition:border-color .12s}.pd-name-input:hover{border-bottom-color:var(--line-soft)}.pd-name-input:focus{border-bottom-color:var(--ink)}.pd-name-input::placeholder{color:var(--ink-4)}.pd-meta-row{flex-wrap:wrap;gap:20px;display:flex}.pd-meta-field{align-items:center;gap:6px;display:flex}.pd-meta-label{font-family:var(--mono);color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-size:9px}.pd-meta-input,.pd-meta-select{font-family:var(--mono);color:var(--ink);cursor:pointer;background:0 0;border:none;border-bottom:1px solid #0000;outline:none;padding:2px 0;font-size:11px;font-weight:500;transition:border-color .12s}.pd-meta-input:hover,.pd-meta-select:hover{border-bottom-color:var(--line-soft)}.pd-meta-input:focus,.pd-meta-select:focus{border-bottom-color:var(--ink)}.pd-meta-input::placeholder{color:var(--ink-4)}.pd-progress-row{align-items:center;gap:10px;display:flex}.pd-progress-bar{background:var(--line-soft);border-radius:2px;flex:1;max-width:280px;height:4px;overflow:hidden}.pd-progress-fill{background:var(--ink);border-radius:2px;height:100%;transition:width .3s}.pd-progress-label{font-family:var(--mono);color:var(--ink-3);font-size:10px}.pd-header-actions{flex-direction:column;gap:6px;margin-top:4px;display:flex}.pd-action-btn{border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-family:var(--mono);cursor:pointer;white-space:nowrap;border-radius:999px;padding:6px 14px;font-size:10px;transition:opacity .12s}.pd-action-btn:hover{opacity:.82}.pd-action-btn.danger{color:var(--ink-3);border-color:var(--line-soft);background:0 0}.pd-action-btn.danger:hover{border-color:var(--warn);color:var(--warn);opacity:1}.pd-cards{flex-direction:column;flex:1;gap:0;max-width:720px;padding:16px 24px;display:flex;overflow-y:auto}.pd-empty{font-family:var(--mono);color:var(--ink-4);text-align:center;padding:32px 0;font-size:11px;line-height:1.7}.settings-page{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.settings-header{border-bottom:1.5px solid var(--ink);background:var(--card);flex-shrink:0;padding:20px 32px 16px}.settings-header h2{margin:0;font-size:20px;font-weight:700}.settings-body{flex-direction:column;gap:32px;max-width:560px;padding:28px 32px;display:flex}.settings-section-head{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.settings-section-head h3{margin:0 0 4px;font-size:14px;font-weight:700}.settings-desc{font-family:var(--mono);color:var(--ink-3);margin:0;font-size:10px}.settings-add-row{gap:8px;margin-bottom:12px;display:flex}.settings-input{border:1px solid var(--line-soft);background:var(--paper);font-family:var(--sans);color:var(--ink);outline:none;flex:1;padding:8px 12px;font-size:13px}.settings-input:focus{border-color:var(--ink)}.settings-input::placeholder{color:var(--ink-4)}.settings-add-btn{border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-family:var(--mono);cursor:pointer;white-space:nowrap;border-radius:999px;padding:8px 16px;font-size:10px}.settings-add-btn:hover{opacity:.85}.settings-add-btn:disabled{opacity:.4;cursor:default}.settings-member-list{border:1px solid var(--line-soft);flex-direction:column;display:flex}.settings-member-row{border-bottom:1px solid var(--line-soft);background:var(--card);align-items:center;gap:12px;padding:10px 14px;transition:background .1s;display:flex}.settings-member-row:last-child{border-bottom:none}.settings-member-row:hover{background:var(--paper-2)}.settings-avatar{border:1px solid var(--ink);background:var(--paper-2);width:28px;height:28px;font-family:var(--mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:flex}.settings-member-name{flex:1;font-size:13px;font-weight:500}.settings-delete-btn{border:1px solid var(--line-soft);color:var(--ink-3);font-family:var(--mono);cursor:pointer;background:0 0;border-radius:999px;padding:3px 10px;font-size:9.5px}.settings-delete-btn:hover{border-color:var(--warn);color:var(--warn)}.settings-empty{text-align:center;font-family:var(--mono);color:var(--ink-4);border:1px solid var(--line-soft);padding:20px;font-size:11px}.settings-confirm-overlay{z-index:60;background:#1a1a1a4d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.settings-confirm{background:var(--card);border:1.5px solid var(--ink);flex-direction:column;gap:10px;width:340px;padding:24px 28px;display:flex;box-shadow:5px 5px #1a1a1a1a}.settings-confirm h3{margin:0;font-size:14px;font-weight:700}.settings-confirm p{color:var(--ink-2);margin:0;font-size:13px;line-height:1.6}.settings-confirm-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.settings-confirm-actions button{border:1px solid var(--line-soft);font-family:var(--mono);cursor:pointer;color:var(--ink-3);background:0 0;border-radius:999px;padding:6px 14px;font-size:10px}.settings-confirm-actions button:hover{background:var(--paper-2);color:var(--ink)}.settings-confirm-actions button.danger{background:var(--warn);color:var(--paper);border-color:var(--warn)}.settings-confirm-actions button.danger:hover{opacity:.85}.settings-account-row{align-items:center;gap:14px;padding:12px 0;display:flex}.settings-avatar-photo{border:1px solid var(--line-soft);border-radius:50%;flex-shrink:0;width:40px;height:40px}.settings-account-info{flex-direction:column;flex:1;gap:2px;display:flex}.settings-account-name{font-size:14px;font-weight:600}.settings-account-email{font-family:var(--mono);color:var(--ink-3);font-size:11px}.settings-logout-btn{border:1px solid var(--line-soft);background:var(--card);font-family:var(--mono);cursor:pointer;color:var(--ink-3);white-space:nowrap;border-radius:999px;padding:6px 16px;font-size:10px}.settings-logout-btn:hover{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}.login-page{background:var(--paper);justify-content:center;align-items:center;height:100vh;display:flex}.login-box{background:var(--card);border:1.5px solid var(--ink);flex-direction:column;align-items:center;gap:16px;min-width:320px;padding:40px 48px;display:flex;box-shadow:5px 5px #1a1a1a14}.login-brand{align-items:center;gap:10px;margin-bottom:8px;display:flex}.login-brand-mark{border:2px solid var(--ink);background:var(--accent-soft);border-radius:3px;width:20px;height:20px;display:inline-block}.login-brand-name{letter-spacing:.02em;font-size:18px;font-weight:700}.login-title{margin:0;font-size:22px;font-weight:700}.login-desc{color:var(--ink-2);text-align:center;margin:0;font-size:13px;line-height:1.6}.login-btn{border:1.5px solid var(--ink);background:var(--card);font-family:var(--sans);color:var(--ink);cursor:pointer;border-radius:2px;align-items:center;gap:10px;margin-top:8px;padding:10px 24px;font-size:13px;font-weight:500;text-decoration:none;transition:background .12s;display:flex}.login-btn:hover{background:var(--paper-2)}.login-google-icon{flex-shrink:0}.app-loading{background:var(--paper);justify-content:center;align-items:center;height:100vh;display:flex}.app-loading-inner{flex-direction:column;align-items:center;gap:12px;display:flex}.brand-mark{border:2px solid var(--ink);background:var(--accent-soft);border-radius:3px;width:24px;height:24px;display:inline-block}.app-loading-label{font-family:var(--mono);color:var(--ink-3);letter-spacing:.06em;font-size:11px}.app-error-label{font-size:15px;font-weight:700}.app-error-hint{font-family:var(--mono);color:var(--ink-3);text-align:center;font-size:11px;line-height:1.6}.app-error-hint code{background:var(--paper-2);border:1px solid var(--line-soft);padding:1px 5px}.app-retry-btn{border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-family:var(--mono);cursor:pointer;border-radius:999px;padding:6px 18px;font-size:10px}.app-retry-btn:hover{opacity:.85}.app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-main{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}
