/* Life OS 0.34 component language — quiet, system-like, legible. */
body.life-ui :where(h1,h2,h3,h4,button,input,select,textarea){font-family:var(--life-font)}
body.life-ui :where(h1,h2,h3,h4){color:var(--life-ink);letter-spacing:-.03em}
body.life-ui button{outline:none}body.life-ui button:focus-visible,body.life-ui [role="button"]:focus-visible,body.life-ui input:focus-visible,body.life-ui select:focus-visible,body.life-ui textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--life-focus) 42%,transparent);outline-offset:2px}
body.life-ui #content .grid{gap:18px}body.life-ui #content .grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}body.life-ui #content .grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
body.life-ui #content .card{min-width:0;padding:18px 20px;border:1px solid var(--life-line-soft);border-radius:14px;background:var(--life-surface);color:var(--life-ink);box-shadow:none}
body.life-ui #content .card-title{display:flex;align-items:center;gap:8px;min-width:0;margin:0 0 12px;color:var(--life-muted);font:620 12px/1.2 var(--life-font);text-transform:none;letter-spacing:0}
body.life-ui #content .card-title .cnt{margin-left:auto;color:var(--life-tertiary);font:500 11px/1 var(--life-font);text-transform:none;letter-spacing:0}
body.life-ui #content .stat{gap:4px}body.life-ui #content .stat-val{color:var(--life-ink);font:650 28px/1.05 var(--life-font);letter-spacing:-.04em;font-variant-numeric:tabular-nums}body.life-ui #content .stat-label{color:var(--life-tertiary);font:500 11px/1.35 var(--life-font)}
body.life-ui #content .list-row{min-width:0;min-height:48px;padding:10px 8px;border-radius:9px;color:var(--life-ink);font:500 13.5px/1.35 var(--life-font);transition:background var(--life-duration-fast) var(--life-ease)}body.life-ui #content .list-row:hover{background:color-mix(in srgb,var(--life-hover) 72%,transparent)}body.life-ui #content .list-row .meta{min-width:0;color:var(--life-tertiary);font:500 11.5px/1.3 var(--life-font)}
body.life-ui #content .attn-row{min-width:0;padding:11px 5px;border-bottom:1px solid var(--life-line-soft);font-size:13px}body.life-ui #content .attn-why{color:var(--life-tertiary);font:450 11.5px/1.45 var(--life-font)}
body.life-ui #content .empty-state{padding:24px 12px;color:var(--life-tertiary);font:450 13px/1.5 var(--life-font);text-align:center}
body.life-ui .btn{min-height:36px;padding:7px 12px;border:1px solid var(--life-line);border-radius:9px;background:var(--life-surface-raised);color:var(--life-ink);box-shadow:0 1px 0 rgba(255,255,255,.03) inset;font:590 13px/1.2 var(--life-font);transition:background var(--life-duration-fast) var(--life-ease),border-color var(--life-duration-fast) var(--life-ease),transform var(--life-duration-fast) var(--life-ease)}
body.life-ui .btn:hover{background:var(--life-hover)}body.life-ui .btn:active{transform:scale(.985)}
body.life-ui .btn-primary{border-color:var(--life-ink);background:var(--life-ink);color:var(--life-action-ink)}body.life-ui .btn-primary:hover{background:color-mix(in srgb,var(--life-ink) 90%,var(--life-canvas));border-color:transparent}
body.life-ui .btn-ghost{border-color:transparent;background:transparent;color:var(--life-muted);box-shadow:none}body.life-ui .btn-ghost:hover{background:color-mix(in srgb,var(--life-hover) 66%,transparent);color:var(--life-ink)}
body.life-ui .btn-sm{min-height:32px;padding:5px 10px;font-size:12px}body.life-ui .btn-danger{color:var(--life-red)}
body.life-ui .badge,body.life-ui .pill{display:inline-flex;align-items:center;max-width:100%;min-height:20px;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--life-hover) 74%,transparent);color:var(--life-muted);font:600 10.5px/1.2 var(--life-font);text-transform:none;letter-spacing:0}
body.life-ui .pill-prio-high{background:color-mix(in srgb,var(--life-red) 14%,transparent);color:var(--life-red)}body.life-ui .pill-prio-med{background:color-mix(in srgb,var(--life-orange) 14%,transparent);color:var(--life-orange)}body.life-ui .pill-prio-low{background:color-mix(in srgb,var(--life-green) 14%,transparent);color:var(--life-green)}
body.life-ui .progress-bar{height:5px;border-radius:999px;background:color-mix(in srgb,var(--life-line) 44%,transparent);overflow:hidden}body.life-ui .progress-bar>div{height:100%;border-radius:inherit;background:var(--life-focus)}
body.life-ui .check{width:19px;height:19px;flex:0 0 19px;border:1.5px solid var(--life-tertiary);border-radius:6px;background:transparent}body.life-ui .check.done{border-color:var(--life-green);background:var(--life-green)}
body.life-ui .tab-row{display:flex;align-items:center;gap:3px;width:max-content;max-width:100%;margin:0 0 22px;padding:3px;border:1px solid var(--life-line-soft);border-radius:10px;background:var(--life-surface-secondary);overflow-x:auto;scrollbar-width:none}body.life-ui .tab-row::-webkit-scrollbar{display:none}body.life-ui .tab{flex:0 0 auto;margin:0;padding:7px 11px;border:0;border-radius:7px;color:var(--life-muted);font:570 12px/1.2 var(--life-font);white-space:nowrap}body.life-ui .tab.active{border:0;background:var(--life-surface);color:var(--life-ink);box-shadow:0 1px 2px rgba(0,0,0,.16),0 1px 0 rgba(255,255,255,.03) inset}
body.life-ui .field{min-width:0;margin-bottom:15px}body.life-ui .field label{display:block;margin:0 0 6px;color:var(--life-muted);font:570 12px/1.3 var(--life-font)}body.life-ui .field :is(input,select,textarea){width:100%;min-height:38px;padding:9px 11px;border:1px solid var(--life-line);border-radius:9px;background:var(--life-surface-secondary);color:var(--life-ink);font:500 13.5px/1.35 var(--life-font);box-shadow:0 1px 0 rgba(255,255,255,.02) inset}body.life-ui .field textarea{min-height:84px;resize:vertical}body.life-ui .field :is(input,select,textarea):focus{border-color:color-mix(in srgb,var(--life-focus) 72%,var(--life-line));outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--life-focus) 16%,transparent)}
body.life-ui .chip-row{gap:6px}body.life-ui .chip{padding:4px 8px;border-radius:999px;background:var(--life-surface-secondary);color:var(--life-muted);font-size:11px}
body.life-ui .avatar{background:linear-gradient(145deg,color-mix(in srgb,var(--life-focus) 72%,#7587a6),color-mix(in srgb,var(--life-focus) 48%,#4f5e72));color:#fff;box-shadow:none}
body.life-ui #toast-wrap{bottom:22px}body.life-ui .toast{padding:9px 13px;border:1px solid var(--life-line);border-radius:10px;background:var(--life-material-heavy);color:var(--life-ink);box-shadow:var(--life-shadow-menu);font-size:12.5px}
body.life-ui .modal-bg,body.life-ui .overlay{background:rgba(0,0,0,.36);backdrop-filter:blur(8px)}
body.life-ui .modal{padding:22px;border:1px solid var(--life-line);border-radius:18px;background:var(--life-surface-raised);color:var(--life-ink);box-shadow:var(--life-shadow-sheet)}body.life-ui .modal-head{margin-bottom:18px}body.life-ui .modal-head h3{font:640 18px/1.2 var(--life-font);letter-spacing:-.02em}
body.life-ui .palette{border:1px solid var(--life-line);border-radius:16px;background:var(--life-material-heavy);box-shadow:var(--life-shadow-sheet)}body.life-ui .palette input{padding:16px 17px;border-bottom:1px solid var(--life-line-soft);color:var(--life-ink);font:500 15px var(--life-font)}body.life-ui .palette-item{border-radius:9px;color:var(--life-ink)}body.life-ui .palette-item:hover,body.life-ui .palette-item.sel{background:var(--life-hover)}
body.life-ui .detail-header{min-width:0}body.life-ui .detail-header h2{color:var(--life-ink);font-family:var(--life-font)}
body.life-ui .kanban{gap:12px}body.life-ui .kanban-col{min-width:220px;padding:10px;border:1px solid var(--life-line-soft);border-radius:13px;background:color-mix(in srgb,var(--life-surface) 82%,transparent)}body.life-ui .kanban-col h4{color:var(--life-tertiary);font:620 11px/1.2 var(--life-font);text-transform:none;letter-spacing:0}body.life-ui .kanban-card{padding:10px;border:1px solid var(--life-line-soft);border-radius:10px;background:var(--life-surface-raised);color:var(--life-ink);box-shadow:none}body.life-ui .kanban-card:hover{border-color:color-mix(in srgb,var(--life-focus) 56%,var(--life-line))}
@media(max-width:820px){body.life-ui #content .grid-2,body.life-ui #content .grid-3{grid-template-columns:minmax(0,1fr)}body.life-ui .btn{min-height:42px}body.life-ui .field :is(input,select,textarea){min-height:44px}body.life-ui .tab-row{width:100%}body.life-ui .tab{min-height:36px}body.life-ui .modal{width:100%!important;max-width:100vw!important;max-height:92dvh!important;margin-top:auto;border-radius:20px 20px 0 0;padding:18px 18px calc(22px + env(safe-area-inset-bottom))}body.life-ui .modal-bg{align-items:flex-end!important;padding:0!important}body.life-ui .kanban{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}body.life-ui .kanban-col{flex:0 0 min(84vw,330px);scroll-snap-align:start}}
