:root{--bg:#f7f6f2;--surface:#fff;--ink:#242622;--muted:#858981;--line:#e8e6df;--accent:#5f725d;--accent-soft:#e7eee4;--shadow:0 10px 30px rgba(43,45,38,.05);font-family:ui-rounded,"SF Pro Rounded",-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}body.night{--bg:#20221f;--surface:#2a2d29;--ink:#eef0e9;--muted:#9da59a;--line:#3b4039;--accent:#a9c4a1;--accent-soft:#354333;--shadow:0 10px 30px rgba(0,0,0,.18)}body.night .sidebar{background:#252824}body.night .nav-item.active,body.night .nav-item:hover{background:#333831}body.night .memo-content{color:#e7ebe3}body.night .tag{background:#354035;color:#b9cfb3}body.night .search{background:rgba(42,45,41,.8)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);letter-spacing:.01em}.app-shell{display:flex;min-height:100vh}.sidebar{width:264px;display:flex;flex-direction:column;padding:30px 18px 20px;border-right:1px solid var(--line);background:#faf9f6}.brand{display:flex;align-items:center;gap:10px;padding:0 12px;font-size:17px;font-weight:700;letter-spacing:-.02em}.brand-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--accent);color:white;font-family:Georgia,serif;font-size:19px;font-style:italic}.new-note{display:flex;align-items:center;gap:9px;margin:38px 0 24px;padding:12px 13px;border:1px solid #dfe7dc;border-radius:11px;background:var(--accent-soft);color:#4d604b;font:inherit;font-weight:650;cursor:pointer}.new-note span{font-size:20px;line-height:12px}.new-note kbd,.search kbd{margin-left:auto;color:#9da29a;font-size:10px;font-weight:500}.primary-nav{display:grid;gap:4px}.nav-item{width:100%;display:flex;align-items:center;gap:12px;padding:10px 13px;border:0;border-radius:9px;background:transparent;color:#747970;text-align:left;font:inherit;font-size:14px;cursor:pointer}.nav-item span{width:17px;color:#9ca39a;font-size:17px;text-align:center}.nav-item b{margin-left:auto;color:#a3a89f;font-size:12px;font-weight:500}.nav-item.active,.nav-item:hover{background:#efeee9;color:var(--ink)}.nav-item.active span{color:var(--accent)}.sidebar-footer{margin-top:auto}.profile{display:flex;align-items:center;gap:9px;padding:20px 11px 0;border-top:1px solid var(--line);font-size:12px}.profile strong,.profile small{display:block}.profile small{margin-top:3px;color:var(--muted);font-size:11px}.avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#ddceb4;color:#624f39;font-size:12px}.dots{margin-left:auto;color:#b2b5ad}.main-content{width:min(760px,calc(100% - 264px));margin:0 auto;padding:54px 30px 80px}.topbar{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:29px}.eyebrow{margin:0 0 7px;color:var(--muted);font-size:12px}.topbar h1{margin:0;font-size:25px;letter-spacing:-.04em}.top-actions{display:flex;align-items:center;gap:10px}.search{display:flex;align-items:center;gap:8px;width:188px;height:37px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.54);color:#9ca29a}.search input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:12px}.icon-button,.tool-button{border:0;background:transparent;color:#9da29a;cursor:pointer}.icon-button{width:36px;height:36px;border:1px solid var(--line);border-radius:9px;font-size:17px}.card-surface{border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:var(--shadow)}.composer{padding:16px 17px 11px}.composer textarea{display:block;width:100%;border:0;resize:none;outline:none;color:var(--ink);font:inherit;font-size:15px;line-height:1.7;background:transparent}.composer textarea::placeholder{color:#b5b8b0}.composer-toolbar{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.composer-hint{color:#b0b4ac;font-size:11px}.composer-actions{display:flex;align-items:center;gap:10px}.tool-button{font-size:18px}.publish{padding:8px 13px;border:0;border-radius:8px;background:var(--accent);color:white;font:inherit;font-size:12px;font-weight:650;cursor:pointer}.publish span{margin-left:7px;color:#cedbc9;font-size:10px}.stream-header{display:flex;justify-content:space-between;align-items:center;margin:35px 2px 14px;color:#8b9188;font-size:12px}.filter-button{padding:5px 8px;border:0;background:transparent;color:#8b9188;font:inherit;font-size:11px;cursor:pointer}.memo-stream{display:grid;gap:12px}.memo{padding:18px 19px 15px;border:1px solid var(--line);border-radius:12px;background:var(--surface);transition:box-shadow .2s,transform .2s}.memo:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.memo-content{margin:0;color:#333630;font-size:14px;line-height:1.75;white-space:pre-wrap;word-break:break-word;cursor:text}.memo-meta{display:flex;align-items:center;gap:10px;margin-top:15px;color:#afb3ab;font-size:11px}.memo-tags{display:flex;gap:5px;flex-wrap:wrap}.tag{padding:4px 7px;border-radius:5px;background:#f0f3ee;color:#71806d;font-size:10px;cursor:pointer}.memo-date{margin-left:auto}.memo-menu,.memo-edit{opacity:0;border:0;background:transparent;color:#b1b5ad;cursor:pointer}.memo:hover .memo-menu,.memo:hover .memo-edit{opacity:1}.memo-editarea{display:block;width:100%;min-height:82px;padding:0;border:0;resize:vertical;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:14px;line-height:1.75}.edit-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:13px}.edit-actions button{padding:7px 11px;border-radius:7px;font:inherit;font-size:11px;cursor:pointer}.cancel-edit{border:1px solid var(--line);background:transparent;color:var(--muted)}.save-edit{border:0;background:var(--accent);color:white}.empty-state{text-align:center;padding:80px 20px;color:var(--muted)}.empty-icon{margin:auto;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:20px}.empty-state h2{margin:16px 0 5px;color:#5d645a;font-size:16px}.empty-state p{font-size:12px}.hidden{display:none!important}.mobile-nav{display:none}
@media(max-width:700px){.sidebar{display:none}.main-content{width:100%;padding:27px 17px 90px}.topbar{align-items:center;margin-bottom:22px}.topbar h1{font-size:22px}.top-actions{gap:5px}.search{width:38px;border-color:transparent;background:transparent;padding:0}.search span{font-size:22px}.search input,.search kbd{display:none}.icon-button{border-color:transparent}.composer{padding:14px}.composer-hint{display:none}.composer-toolbar{justify-content:flex-end}.stream-header{margin-top:28px}.mobile-nav{position:fixed;z-index:4;right:0;bottom:0;left:0;display:flex;justify-content:space-around;padding:9px 4px calc(9px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(250,249,246,.94);backdrop-filter:blur(14px)}.mobile-nav button{display:grid;gap:3px;place-items:center;border:0;background:transparent;color:#9a9f97;font:inherit;font-size:18px}.mobile-nav button span{font-size:9px}.mobile-nav button.active{color:var(--accent)}.mobile-nav button:nth-child(3){margin-top:-25px;width:47px;height:47px;border:5px solid var(--bg);border-radius:50%;background:var(--accent);color:white;font-size:24px}.mobile-nav button:nth-child(3) span{display:none}.memo{padding:15px 15px 13px}}
.profile{width:100%;border:0;background:transparent;text-align:left;cursor:pointer;font:inherit}.auth-modal{position:fixed;z-index:10;inset:0;display:grid;place-items:center;padding:20px;background:rgba(35,39,32,.32);backdrop-filter:blur(8px)}.auth-modal.hidden{display:none}.auth-card{position:relative;width:min(390px,100%);padding:29px;border:1px solid var(--line);border-radius:17px;background:var(--surface);box-shadow:0 22px 70px rgba(25,30,24,.18)}.auth-close{position:absolute;top:13px;right:15px;border:0;background:transparent;color:var(--muted);font-size:23px;cursor:pointer}.auth-card h2{margin:3px 0 8px;font-size:22px;letter-spacing:-.04em}.auth-description{margin:0 0 22px;color:var(--muted);font-size:12px;line-height:1.6}.auth-label{display:grid;gap:7px;margin-top:13px;color:var(--muted);font-size:11px}.auth-label input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:8px;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:13px}.auth-submit{width:100%;margin-top:20px;padding:11px;border:0;border-radius:9px;background:var(--accent);color:white;font:inherit;font-size:13px;font-weight:650;cursor:pointer}.auth-switch,.auth-guest{display:block;width:100%;margin-top:13px;border:0;background:transparent;color:var(--accent);font:inherit;font-size:11px;cursor:pointer}.auth-guest{color:var(--muted)}.auth-error{min-height:15px;margin:12px 0 -7px;color:#b35c54;font-size:11px}.hidden{display:none!important}
:root{--bg:#f4f3ee;--surface:#fffefa;--ink:#262923;--muted:#889087;--line:#e6e6df;--accent:#61785e;--accent-soft:#e8efe5;--shadow:0 18px 48px rgba(53,62,49,.07)}body{background:radial-gradient(circle at 75% -15%,#e6eee1 0,rgba(230,238,225,0) 31%),var(--bg)}.app-shell{display:grid;grid-template-columns:248px minmax(560px,820px) 270px;align-items:stretch;min-height:100vh;max-width:1440px;margin:0 auto}.sidebar{width:auto;padding:34px 18px 23px;background:rgba(250,250,246,.72);border-right:1px solid rgba(216,219,210,.78);backdrop-filter:blur(18px)}.brand{padding:0 14px;font-size:18px}.brand-mark{width:30px;height:30px;border-radius:10px;box-shadow:0 5px 12px rgba(97,120,94,.22)}.new-note{margin:39px 8px 26px;padding:13px 14px;border:1px solid #dbe6d7;border-radius:12px;box-shadow:0 6px 16px rgba(94,118,89,.08);transition:transform .18s,box-shadow .18s}.new-note:hover{transform:translateY(-1px);box-shadow:0 9px 20px rgba(94,118,89,.14)}.nav-item{padding:11px 14px;border-radius:10px}.nav-item.active{box-shadow:inset 3px 0 var(--accent);font-weight:650}.sidebar-footer{padding:0 4px}.profile{margin-top:7px;padding:17px 10px 0}.main-content{width:auto;max-width:none;margin:0;padding:56px 40px 90px}.topbar{align-items:flex-start;margin-bottom:30px}.eyebrow{text-transform:none;letter-spacing:.04em}.welcome h1{font-size:30px;line-height:1.15}.page-subtitle{margin:9px 0 0;color:var(--muted);font-size:12px}.top-actions{padding-top:8px}.search{width:225px;height:39px;border-color:#e2e3dc;background:rgba(255,255,255,.6);box-shadow:0 4px 12px rgba(58,64,54,.03)}.icon-button{background:rgba(255,255,255,.45);transition:background .18s}.icon-button:hover{background:var(--surface)}.card-surface{border-radius:17px;box-shadow:var(--shadow)}.composer{padding:17px 19px 13px}.composer-label{display:flex;align-items:center;gap:8px;margin-bottom:11px;color:#6d786a;font-size:11px;font-weight:650}.composer-dot{width:7px;height:7px;border-radius:50%;background:#9db59a;box-shadow:0 0 0 4px #edf4eb}.composer-note{margin-left:auto;color:#b0b6ae;font-weight:450}.composer textarea{min-height:70px;font-size:15px}.composer-toolbar{margin-top:14px}.publish{padding:9px 15px;border-radius:9px;box-shadow:0 5px 12px rgba(72,97,68,.16);transition:transform .18s,box-shadow .18s}.publish:hover{transform:translateY(-1px);box-shadow:0 8px 16px rgba(72,97,68,.2)}.stream-header{margin:38px 3px 15px}.stream-header>div{display:flex;align-items:center;gap:9px}.stream-header>div>span:first-child{color:#626b61;font-size:13px;font-weight:650}.stream-count{color:#b4b9b1;font-size:11px}.filter-button{padding:7px 10px;border:1px solid transparent;border-radius:8px;transition:background .18s}.filter-button:hover{background:#eceee8}.filter-button span{margin-right:4px;font-size:14px}.memo-stream{gap:10px}.memo{padding:19px 20px 16px;border-color:#e7e7e1;border-radius:15px;box-shadow:0 2px 6px rgba(53,61,49,.018);transition:box-shadow .2s,transform .2s,border-color .2s}.memo:hover{border-color:#dce4d9;box-shadow:0 14px 30px rgba(53,61,49,.065);transform:translateY(-2px)}.memo-content{font-size:14px;line-height:1.85}.memo-meta{margin-top:17px}.tag{padding:5px 8px;border-radius:6px;background:#f0f4ee}.memo-edit{padding:3px 5px}.memo-menu{padding:3px 5px}.insight-rail{padding:116px 25px 50px 0}.rail-card{margin-bottom:13px;padding:18px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,252,.66);box-shadow:0 8px 24px rgba(59,67,55,.035)}.rail-heading{display:flex;align-items:center;justify-content:space-between;color:#5c675b;font-size:12px;font-weight:650}.rail-spark{color:#a6b89e}.rail-caption{margin:9px 0 20px;color:var(--muted);font-size:11px;line-height:1.6}.today-number{display:inline-block;color:var(--accent);font-size:38px;line-height:1;font-weight:700;letter-spacing:-.08em}.today-label{display:inline-block;margin-left:8px;color:#99a198;font-size:11px}.mini-bars{display:flex;align-items:end;gap:7px;height:65px;margin-top:18px;padding:0 3px}.mini-bars i{display:block;flex:1;border-radius:4px 4px 2px 2px;background:#dfe9dc}.mini-bars i.current{background:var(--accent)}.mini-days{display:flex;justify-content:space-between;margin-top:7px;color:#b2b8b0;font-size:9px}.rail-link{padding:0;border:0;background:none;color:#9aaa94;font:inherit;font-size:10px;cursor:pointer}.rail-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.rail-tags button{padding:7px 9px;border:1px solid #e1e9df;border-radius:7px;background:#f7faf5;color:#7f917b;font:inherit;font-size:10px;cursor:pointer}.review-card{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px;background:linear-gradient(135deg,#eef4eb,#f8f6ed)}.review-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#dae8d6;color:var(--accent);font-size:17px}.review-card strong{font-size:11px;color:#657161}.review-card p{margin:5px 0 0;color:#98a097;font-size:10px;line-height:1.5}.review-button{width:100%;margin-top:5px;padding:8px;border:1px solid #d2e0ce;border-radius:8px;background:rgba(255,255,255,.6);color:#6f836b;font:inherit;font-size:10px;font-weight:650;cursor:pointer}
body.night{--bg:#1e211e;--surface:#292d29;--ink:#eef0e9;--muted:#9da59a;--line:#3b4039;--accent:#a9c4a1;--accent-soft:#354333;--shadow:0 18px 48px rgba(0,0,0,.22);background:radial-gradient(circle at 75% -15%,#2d3a2e 0,rgba(45,58,46,0) 31%),var(--bg)}body.night .rail-card{background:rgba(42,47,42,.75)}body.night .rail-tags button{background:#313a31;border-color:#414d40;color:#b9cfb3}body.night .review-card{background:linear-gradient(135deg,#2d3b2d,#37372c)}
@media(max-width:1180px){.app-shell{grid-template-columns:230px minmax(0,820px)}.insight-rail{display:none}.main-content{padding-right:45px}}
@media(max-width:700px){body{background:var(--bg)}.app-shell{display:block}.main-content{padding:27px 17px 90px}.topbar{margin-bottom:23px}.welcome h1{font-size:25px}.page-subtitle{font-size:11px}.top-actions{padding-top:0}.composer{padding:16px 15px 13px}.composer-label{margin-bottom:10px}.composer-note{display:none}.stream-header{margin-top:30px}.memo{border-radius:13px}.rail-card{display:none}}
.view-panel{padding-bottom:30px}.panel-intro{margin:3px 0 22px}.panel-kicker{display:inline-block;margin-bottom:8px;color:#9eae99;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.panel-intro h2{margin:0;color:var(--ink);font-size:25px;letter-spacing:-.04em}.panel-intro p{max-width:460px;margin:9px 0 0;color:var(--muted);font-size:12px;line-height:1.7}.tag-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tag-overview-item{display:flex;align-items:center;gap:10px;padding:15px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);text-align:left;font:inherit;cursor:pointer;transition:transform .18s,box-shadow .18s}.tag-overview-item:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.tag-overview-icon{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-size:16px}.tag-overview-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.tag-overview-count{margin-left:auto;color:var(--muted);font-size:10px;white-space:nowrap}.tag-overview-arrow{color:#b7c2b3;font-size:15px}.panel-empty{padding:42px 20px;border:1px dashed #dbe1d8;border-radius:13px;color:var(--muted);text-align:center;font-size:12px}.review-focus{padding:23px 23px 18px;border-radius:16px;background:linear-gradient(135deg,#71896c,#526a55);color:white;box-shadow:0 16px 35px rgba(82,106,85,.2)}.review-focus-top{display:flex;justify-content:space-between;color:#cfdeca;font-size:10px}.review-focus p{margin:27px 0 31px;font-size:18px;line-height:1.75;letter-spacing:-.02em}.review-focus-bottom{display:flex;align-items:center;justify-content:space-between}.review-focus .tag{background:rgba(255,255,255,.16);color:#eef5eb}.review-next{padding:7px 10px;border:1px solid rgba(255,255,255,.28);border-radius:7px;background:transparent;color:white;font:inherit;font-size:10px;cursor:pointer}.review-history{margin-top:26px}.section-label{margin-bottom:12px;color:#9ba49b;font-size:10px;font-weight:650;letter-spacing:.04em}.review-history-item{display:flex;gap:14px;width:100%;padding:13px 0;border:0;border-top:1px solid var(--line);background:none;color:#6f786e;text-align:left;font:inherit;font-size:12px;cursor:pointer}.history-date{width:60px;color:#b1b8b0;font-size:10px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat-box{padding:17px 16px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.stat-box span,.stat-box small{display:block;color:var(--muted);font-size:10px}.stat-box strong{display:block;margin:12px 0 3px;color:var(--accent);font-size:28px;line-height:1;letter-spacing:-.07em}.heatmap-card,.top-tags-card{margin-top:12px;padding:18px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.heatmap{display:grid;grid-template-columns:repeat(14,1fr);gap:7px}.heat-cell{display:block;aspect-ratio:1;border-radius:4px;background:#eef1ec}.heat-cell.level-1{background:#dbe8d8}.heat-cell.level-2{background:#bcd3b8}.heat-cell.level-3{background:#8faf87}.heat-cell.level-4{background:var(--accent)}.heatmap-legend{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin-top:13px;color:#adb5ab;font-size:9px}.heatmap-legend i{display:block;width:10px;height:10px;border-radius:3px}.top-tag-row{display:grid;grid-template-columns:100px 1fr 22px;align-items:center;gap:10px;margin-top:12px;color:#758071;font-size:11px}.top-tag-row>div{height:6px;border-radius:4px;background:#f0f2ee;overflow:hidden}.top-tag-row i{display:block;height:100%;border-radius:4px;background:#a7bea2}.top-tag-row b{color:#a8b0a6;font-size:10px;text-align:right}.night .panel-empty{border-color:#465246}.night .tag-overview-item,.night .stat-box,.night .heatmap-card,.night .top-tags-card{background:var(--surface)}.night .heat-cell.level-0{background:#353b35}
@media(max-width:700px){.tag-overview{grid-template-columns:1fr}.panel-intro h2{font-size:22px}.review-focus{padding:20px}.review-focus p{font-size:16px}.stats-grid{gap:7px}.stat-box{padding:14px 11px}.stat-box strong{font-size:24px}.heatmap{gap:5px}}
:focus-visible{outline:3px solid rgba(97,120,94,.42);outline-offset:3px}.auth-label input:focus-visible,.search input:focus-visible,.composer textarea:focus-visible,.memo-editarea:focus-visible{outline:2px solid rgba(97,120,94,.42);outline-offset:2px}
.composer-status{display:flex;align-items:center;gap:9px;min-width:0}.sync-retry{padding:4px 7px;border:1px solid #d9e4d5;border-radius:6px;background:#f4f8f2;color:#71836e;font:inherit;font-size:10px;white-space:nowrap;cursor:pointer}.sync-retry:hover{background:#eaf2e7}.settings-modal{position:fixed;z-index:11;inset:0;display:grid;place-items:center;padding:20px;background:rgba(35,39,32,.32);backdrop-filter:blur(8px)}.settings-modal.hidden{display:none}.settings-card{position:relative;width:min(460px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:29px;border:1px solid var(--line);border-radius:17px;background:var(--surface);box-shadow:0 22px 70px rgba(25,30,24,.18)}.settings-card h2{margin:3px 0 8px;font-size:22px;letter-spacing:-.04em}.token-scope{display:flex;justify-content:space-between;align-items:center;margin-top:15px;padding:10px 11px;border-radius:8px;background:var(--accent-soft);color:#6f7f6c;font-size:11px}.token-scope strong{font-size:11px}.token-secret{margin-top:15px;padding:12px;border:1px solid #d7e2d3;border-radius:9px;background:#f3f8f1}.token-secret>span{display:block;color:#70806d;font-size:11px;font-weight:650}.token-secret code{display:block;overflow-wrap:anywhere;margin-top:8px;color:#41513f;font-size:11px;line-height:1.6}.token-secret .auth-switch{margin-top:8px;text-align:left}.token-list-heading{display:flex;justify-content:space-between;align-items:center;margin-top:24px;color:var(--muted);font-size:11px;font-weight:650}.token-list-heading .auth-switch{width:auto;margin:0;font-weight:500}.token-list{display:grid;gap:8px;margin-top:10px}.token-list>p{margin:0;padding:13px 0;color:var(--muted);font-size:11px}.token-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--line)}.token-row strong,.token-row small{display:block}.token-row strong{color:var(--ink);font-size:12px}.token-row small{margin-top:4px;color:var(--muted);font-size:10px}.token-revoke{padding:6px 8px;border:1px solid #ead8d4;border-radius:7px;background:transparent;color:#a5675e;font:inherit;font-size:10px;cursor:pointer}.settings-help{margin:20px 0 0;color:var(--muted);font-size:10px;line-height:1.65}.settings-help code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#667562}
.sidebar-tag-section{margin:20px 4px 0;padding-top:16px;border-top:1px solid var(--line)}.sidebar-tag-heading{display:flex;align-items:center;justify-content:space-between;padding:0 10px 7px;color:var(--muted);font-size:10px;font-weight:650}.sidebar-tags{display:grid;gap:2px}.sidebar-tags-empty,.rail-tags-empty{color:var(--muted);font-size:10px}.tag-row{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line)}.tag-row.compact{border:0}.tag-row-select{display:flex;align-items:center;gap:8px;min-width:0;flex:1;padding:10px 4px;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.tag-row.compact .tag-row-select{padding:7px 8px;border-radius:7px;font-size:11px}.tag-row.compact .tag-row-select:hover{background:var(--accent-soft)}.tag-row-select>span{color:var(--accent);font-weight:700}.tag-row-select strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500}.tag-row-select small{margin-left:auto;color:var(--muted);font-size:10px}.tag-pin{width:29px;height:29px;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer}.tag-pin:hover{background:var(--accent-soft);color:var(--accent)}.tag-list-heading{display:flex;justify-content:space-between;margin:19px 2px 7px;color:var(--muted);font-size:10px;font-weight:650}.tag-list-heading span{font-weight:400}.tag-list{border:1px solid var(--line);border-radius:13px;background:var(--surface);overflow:hidden}.tag-list .tag-row:last-child{border-bottom:0}.tag-list .tag-row-select{padding:13px 14px}.tag-list .tag-row-select:hover{background:#f7faf5}.tag-list .tag-pin{margin-right:8px}
.attachment-pending{border:0;border-radius:999px;background:var(--accent-soft);color:var(--accent);padding:5px 9px;font:inherit;font-size:12px;cursor:pointer}.memo-attachments{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.memo-attachment{display:inline-flex;align-items:center;max-width:270px;padding:7px 10px;border:0;border-radius:10px;background:var(--accent-soft);color:var(--accent);font:inherit;text-align:left;cursor:pointer}.memo-attachment:hover{filter:brightness(.97)}
.attachment-thumb{display:grid;place-items:center;flex:0 0 auto;width:52px;height:42px;margin:-4px 8px -4px -7px;overflow:hidden;border-radius:7px;background:var(--surface);font-size:11px;font-weight:750}.attachment-thumb img{width:100%;height:100%;object-fit:cover}.attachment-copy{display:grid;gap:2px;min-width:0}.attachment-copy strong,.attachment-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-copy strong{font-size:11px;font-weight:650}.attachment-copy small{color:var(--muted);font-size:9px}
.attachment-modal{position:fixed;z-index:14;inset:0;display:grid;place-items:center;padding:24px;background:rgba(15,18,14,.72);backdrop-filter:blur(12px)}.attachment-modal.hidden{display:none}.attachment-preview-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(980px,100%);height:min(760px,calc(100vh - 48px));overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:var(--surface);box-shadow:0 28px 90px rgba(0,0,0,.3)}.attachment-preview-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 18px;border-bottom:1px solid var(--line)}.attachment-preview-header h2{overflow:hidden;margin:0;color:var(--ink);font-size:15px;text-overflow:ellipsis;white-space:nowrap}.attachment-preview-header p{margin:4px 0 0;color:var(--muted);font-size:10px}.attachment-preview-close{flex:0 0 auto;width:44px;height:44px;border:0;border-radius:50%;background:var(--accent-soft);color:var(--ink);font:inherit;font-size:24px;cursor:pointer}.attachment-preview-body{display:grid;place-items:center;min-height:0;overflow:auto;background:#171a17}.attachment-preview-body img{display:block;max-width:100%;max-height:100%;object-fit:contain}.attachment-preview-body audio{width:min(560px,calc(100% - 40px))}.attachment-preview-body iframe{width:100%;height:100%;border:0;background:white}.attachment-preview-body p{color:white}.attachment-open-original{padding:13px 18px;border-top:1px solid var(--line);color:var(--accent);font-size:11px;text-align:right;text-decoration:none}
.tag-search{display:flex;align-items:center;gap:8px;margin:0 0 17px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted)}.tag-search input{width:100%;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:12px}.tag-search:focus-within{border-color:#cfdccc;box-shadow:0 0 0 3px rgba(97,120,94,.1)}
.search.search-open{width:min(205px,calc(100vw - 90px));padding:0 10px;border-color:var(--line);background:var(--surface)}
@media(max-width:700px){.search.search-open{width:min(205px,calc(100vw - 90px));padding:0 10px;border-color:var(--line);background:var(--surface)}.search.search-open input{display:block}.search.search-open kbd{display:none}}
@media(max-width:700px){.attachment-modal{padding:0}.attachment-preview-card{width:100%;height:100%;border:0;border-radius:0}.memo-attachment{max-width:100%}}

/* Cross-platform polish: readable secondary text and touch-safe actions. */
:root{--muted:#6f776e}
.composer-hint,.composer-note{color:#6f776e}
.memo-edit,.memo-menu{min-width:32px;min-height:32px;border-radius:8px}
.memo-edit:hover,.memo-menu:hover{background:var(--accent-soft);color:var(--accent)}
@media(hover:none),(pointer:coarse){.memo-edit,.memo-menu{opacity:1;min-width:44px;min-height:44px}.tag,.tool-button,.filter-button{min-height:44px}}

/* Keep the attachment affordance and destructive action visually consistent
   with the native paperclip/trash controls on macOS and iOS. */
.paperclip-icon{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.attachment-thumb .paperclip-icon{width:17px;height:17px}
.trash-icon{display:block;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.memo-delete{display:grid;place-items:center;padding:3px 5px}
.memo-delete:hover{background:var(--accent-soft);color:#b45f5f}
.clear-tag-button{padding:4px 7px;border:0;border-radius:7px;background:var(--accent-soft);color:var(--accent);font:inherit;font-size:9px;cursor:pointer}
@media(hover:none),(pointer:coarse){.memo-delete{opacity:1;min-width:44px;min-height:44px}}
.tag-list .tag-row{padding-left:calc(var(--tag-depth,0) * 17px)}.tag-expand,.tag-expand-placeholder{display:grid;place-items:center;flex:0 0 24px;width:24px;height:30px;margin-left:5px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:inherit;cursor:pointer}.tag-expand:hover{background:var(--accent-soft);color:var(--accent)}
.filter-anchor{position:relative}.filter-button.active{border-color:#d6e2d2;background:var(--accent-soft);color:var(--accent)}.filter-popover{position:absolute;z-index:9;top:calc(100% + 8px);right:0;width:250px;padding:15px;border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:0 18px 48px rgba(42,49,39,.16)}.filter-popover-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;color:var(--ink);font-size:12px}.filter-popover-title button{border:0;background:transparent;color:var(--accent);font:inherit;font-size:10px;cursor:pointer}.filter-popover label{display:grid;grid-template-columns:55px 1fr;align-items:center;gap:9px;padding:7px 0;color:var(--muted);font-size:10px}.filter-popover select{width:100%;padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--ink);font:inherit;font-size:11px}.filter-chips{display:flex;flex-wrap:wrap;gap:6px;margin:-8px 3px 14px}.filter-chips:empty{display:none}.filter-chips span{padding:5px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:9px}
@media(max-width:700px){
  .topbar{position:relative;min-height:72px}
  .search.search-open{position:absolute;z-index:6;top:0;right:41px;width:calc(100% - 41px);max-width:none;box-shadow:0 8px 24px rgba(53,62,49,.13)}
  .mobile-nav button{min-width:44px;min-height:44px}
  .memo-meta{gap:4px}
  .memo-date{white-space:nowrap}
  .filter-popover{position:fixed;top:auto;right:12px;bottom:82px;left:12px;width:auto}.filter-popover label{grid-template-columns:70px 1fr}.tag-list .tag-row{padding-left:calc(var(--tag-depth,0) * 11px)}
}

/* Sprint 2: pinned cards, details, history and recoverable trash. */
.memo.pinned{border-color:#ccd9c8;background:linear-gradient(180deg,#fffefb,#fbfdf9)}
.memo-pinned-label{display:inline-block;margin-bottom:8px;color:var(--accent);font-size:9px;font-weight:700}
.memo-content-button{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.memo-pin{display:grid;place-items:center;min-width:32px;min-height:32px;border:0;border-radius:8px;background:transparent;color:var(--muted);font:inherit;cursor:pointer}
.memo-pin:hover{background:var(--accent-soft);color:var(--accent)}
.trash-list{display:grid;gap:9px}.trash-item{display:flex;align-items:center;gap:16px;padding:16px 17px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.trash-content{display:grid;flex:1;gap:6px;padding:0;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.trash-content strong{font-size:12px;font-weight:600;line-height:1.6}.trash-content small{color:var(--muted);font-size:9px}.trash-item>div{display:flex;gap:6px}
.trash-item>div button,.detail-actions button,.detail-history button{padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--accent);font:inherit;font-size:10px;cursor:pointer}.danger{color:#ad5e56!important;border-color:#ead5d1!important}
.memo-detail-modal{position:fixed;z-index:15;inset:0;display:grid;place-items:center;padding:22px;background:rgba(35,39,32,.34);backdrop-filter:blur(10px)}.memo-detail-modal.hidden{display:none}.memo-detail-card{width:min(680px,100%);max-height:calc(100vh - 44px);overflow:auto;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 28px 90px rgba(25,30,24,.24)}
.memo-detail-header{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line);background:var(--surface)}.memo-detail-header p{margin:0 0 4px}.memo-detail-header h2{margin:0;font-size:20px}.memo-detail-body{padding:21px}.detail-current>p{margin:18px 0;font-size:16px;line-height:1.8;white-space:pre-wrap}.detail-status{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.detail-current dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.detail-current dl div{padding:10px;border-radius:9px;background:var(--accent-soft)}.detail-current dt{color:var(--muted);font-size:9px}.detail-current dd{margin:4px 0 0;color:var(--ink);font-size:10px}.detail-actions{display:flex;flex-wrap:wrap;gap:7px}.detail-history{margin-top:26px}.detail-history article{padding:14px 0;border-top:1px solid var(--line)}.detail-history article>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.detail-history strong{font-size:11px}.detail-history time{color:var(--muted);font-size:9px}.detail-history p{margin:9px 0;color:var(--muted);font-size:11px;line-height:1.6;white-space:pre-wrap}
@media(max-width:700px){.memo-detail-modal{padding:0}.memo-detail-card{width:100%;height:100%;max-height:none;border:0;border-radius:0}.trash-item{align-items:flex-start;flex-direction:column}.trash-item>div{width:100%}.trash-item>div button{flex:1;min-height:44px}}

/* Sprint 3: shared daily review and a calm 90-day rhythm view. */
.review-title{display:flex;justify-content:space-between;gap:18px}.review-settings-toggle{align-self:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--accent);font:inherit;font-size:10px;cursor:pointer}.review-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:4px 0 16px;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fafbf7}.review-settings.hidden{display:none}.review-settings label{display:grid;gap:5px;color:var(--muted);font-size:10px}.review-settings input,.review-settings select{width:100%;box-sizing:border-box;padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font:inherit;font-size:11px}.review-settings .review-reminder{grid-template-columns:auto 1fr;align-items:center;gap:7px}.review-settings .review-reminder input[type=checkbox]{width:auto}.review-settings button{justify-self:start;padding:7px 10px;border:0;border-radius:7px;background:var(--accent);color:white;font:inherit;font-size:10px;cursor:pointer}.review-settings small{align-self:end;color:var(--muted);font-size:9px}.heatmap-90{grid-template-columns:repeat(15,1fr);gap:4px}.heatmap-90 .heat-cell{width:auto;height:14px}
@media(max-width:700px){.review-title{display:block}.review-settings-toggle{margin-top:10px}.review-settings{grid-template-columns:1fr}.review-settings .review-reminder{grid-template-columns:auto 1fr}}
