:root{--bg:#f3f4f6;--panel:#fff;--ink:#111827;--muted:#6b7280;--line:#e5e7eb;--accent:#2563eb;--accent-soft:#dbeafe;--danger:#dc2626;--radius:10px;color:var(--ink);-webkit-tap-highlight-color:transparent;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;background:var(--bg);height:100%;margin:0;overflow:hidden}.app{touch-action:pan-y}.sidebar,.note-list,.book-panel{overscroll-behavior:contain}#app{height:100%}button{font:inherit;color:inherit}.app{flex-direction:column;height:100dvh;display:flex}.toolbar{background:var(--panel);border-bottom:1px solid var(--line);-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;gap:2px 4px;min-height:54px;padding:6px 8px;display:flex}.toolbar .group{align-items:center;gap:2px;display:flex}.toolbar [hidden]{display:none!important}.toolbar .sep{background:var(--line);flex:none;width:1px;height:28px;margin:0 2px}.toolbar .spacer{flex:1;min-width:4px}.title-input{font:inherit;text-overflow:ellipsis;background:0 0;border:1px solid #0000;border-radius:8px;flex:none;width:128px;min-width:100px;padding:6px 8px;font-weight:600}.title-input:hover,.title-input:focus{border-color:var(--line);background:#fafafa;outline:none}.icon-btn{cursor:pointer;background:0 0;border:0;border-radius:9px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.icon-btn:hover{background:var(--bg)}.icon-btn.active{background:var(--accent-soft);color:var(--accent)}.icon-btn:disabled{opacity:.35;cursor:default;background:0 0}.icon-btn.small{width:34px;height:34px}.icon-btn.small svg{width:18px;height:18px}.swatch{background:var(--c);cursor:pointer;border:2px solid #0000;border-radius:50%;flex:none;width:28px;height:28px;margin:0 1px;box-shadow:inset 0 0 0 2px #fff}.swatch.active{border-color:var(--ink)}.width-btn{cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;width:32px;height:36px;display:grid}.width-btn i{background:var(--ink);border-radius:50%;display:block}.width-btn.active{background:var(--accent-soft)}.width-btn.active i{background:var(--accent)}.toggle{border:1px solid var(--line);background:var(--panel);cursor:pointer;white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:6px;height:40px;padding:0 10px;font-size:14px;display:inline-flex}.toggle svg{width:18px;height:18px}.toggle .knob{background:#d1d5db;border-radius:999px;width:30px;height:18px;transition:background .15s;position:relative}.toggle .knob:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:left .15s;position:absolute;top:2px;left:2px}.toggle.on{border-color:var(--accent);color:var(--accent)}.toggle.on .knob{background:var(--accent)}.toggle.on .knob:after{left:14px}.status{color:var(--muted);white-space:nowrap;flex:none;align-items:center;gap:6px;padding:0 4px;font-size:13px;display:flex}.status:before{content:"";background:#16a34a;border-radius:50%;width:8px;height:8px}.status.saving:before{background:#f59e0b}.status.retrying:before{background:var(--danger)}.status.retrying{color:var(--danger)}.status.compact{gap:0;padding:0 6px;font-size:0}.main{flex:1;min-height:0;display:flex;position:relative}.board-host{flex:1;min-width:0;position:relative}.sidebar{z-index:20;background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:10px;width:min(320px,85vw);padding:12px;transition:transform .2s;display:flex;position:absolute;top:0;bottom:0;left:0;transform:translate(-105%);box-shadow:4px 0 24px #00000014}.sidebar-open .sidebar{transform:none}.scrim{z-index:15;background:#11182740;display:none;position:absolute;inset:0}.sidebar-open .scrim{display:block}.sidebar-head{justify-content:space-between;align-items:center;display:flex}.brand{align-items:center;gap:8px;font-size:18px;font-weight:700;display:flex}.logo{display:inline-flex}.note-list{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.note-list li{border-radius:8px;align-items:center;display:flex}.note-list li.active{background:var(--accent-soft)}.note-list li:hover:not(.active){background:var(--bg)}.note-open{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:2px;min-width:0;padding:10px;display:flex}.note-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.note-date{color:var(--muted);font-size:12px}.note-actions{opacity:.6;display:flex}.note-list li.active .note-actions,.note-list li:hover .note-actions{opacity:1}.section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:-4px;font-size:12px}.book-button{border:1px solid var(--line);background:var(--panel);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:8px;width:100%;padding:10px 12px;font-weight:600;display:flex}.book-button svg{flex:none;width:20px;height:20px}.book-button .book-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.book-button svg:last-child{color:var(--muted);transition:transform .15s}.book-button.open svg:last-child{transform:rotate(180deg)}.book-panel{border:1px solid var(--line);background:#fafafa;border-radius:10px;flex-direction:column;gap:6px;max-height:45vh;padding:6px;display:flex;overflow-y:auto}.book-panel[hidden]{display:none}.book-list{margin:0;padding:0;list-style:none}.book-list li{border-radius:8px;align-items:center;display:flex}.book-list li.active{background:var(--accent-soft)}.book-list li:hover:not(.active){background:var(--bg)}.book-open{cursor:pointer;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:8px;min-width:0;padding:9px 10px;display:flex}.book-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.book-count{color:var(--muted);background:var(--bg);border-radius:999px;padding:1px 8px;font-size:12px}.book-new{width:100%;height:36px}.sidebar-foot{color:var(--muted);border-top:1px solid var(--line);text-overflow:ellipsis;padding-top:10px;font-size:12px;overflow:hidden}.board{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:flex;position:absolute;inset:0}.board.margin-right{flex-direction:row-reverse}.margin{touch-action:none;cursor:ns-resize;background:#e5e7eb;border-right:1px solid #d1d5db;flex:none;width:52px;position:relative;overflow:hidden}.board.margin-right .margin{border-left:1px solid #d1d5db;border-right:0}.board.free .margin{display:none}.strip-btn{color:#9ca3af;pointer-events:none;border-bottom:1px solid #d1d5db;justify-content:center;align-items:center;display:flex;position:absolute;left:0;right:0}.strip-btn.on{background:var(--accent-soft);color:var(--accent)}.canvas-area{touch-action:none;flex:1;min-width:0;position:relative;overflow:hidden}.canvas-area canvas{touch-action:none;position:absolute;top:0;left:0}.canvas-area canvas.live{cursor:crosshair}.hint{z-index:5;background:var(--ink);color:#fff;border-radius:var(--radius);max-width:640px;margin:0 auto;padding:10px 14px;font-size:14px;line-height:1.4;position:absolute;bottom:12px;left:64px;right:12px;box-shadow:0 6px 24px #0003}.hint .link{color:#93c5fd}.btn{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:6px;height:40px;padding:0 14px;font-weight:500;display:inline-flex}.btn svg{width:18px;height:18px}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn.wide{width:100%}.btn:disabled{opacity:.6}.link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.modal{border:0;border-radius:14px;width:min(600px,94vw);max-height:90dvh;padding:0;box-shadow:0 20px 60px #00000040}.modal.small{width:min(400px,92vw)}.modal::backdrop{background:#11182766}.dlg,.settings{flex-direction:column;gap:12px;padding:20px;display:flex}.dlg h3,.settings h2{margin:0}.dlg p{color:var(--muted);margin:0}.dlg-input,.auth-form input,.settings select{font:inherit;border:1px solid var(--line);border-radius:9px;width:100%;padding:10px 12px}.dlg-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.settings h4{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:10px 0 0;font-size:13px}.set-row{flex-direction:column;gap:6px;display:flex}.set-label{font-weight:500}.set-row small{color:var(--muted)}.set-check{align-items:center;gap:10px;display:flex}.set-check input{width:20px;height:20px}.range{align-items:center;gap:12px;display:flex}.range input{flex:1}.range output{font-variant-numeric:tabular-nums;min-width:150px;color:var(--muted);font-size:14px}.cal{flex-wrap:wrap;align-items:stretch;gap:12px;display:flex}.cal-pad{border-radius:var(--radius);height:110px;color:var(--muted);touch-action:none;-webkit-user-select:none;user-select:none;background:#fafafa;border:2px dashed #cbd5e1;flex:220px;place-items:center;display:grid}.cal-side{flex-direction:column;flex:200px;justify-content:space-between;gap:8px;font-size:14px;display:flex}.cal-btns{gap:8px;display:flex}.readout{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:13px}.set-account{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}#toast{opacity:0;pointer-events:none;background:var(--ink);color:#fff;z-index:100;border-radius:10px;max-width:90vw;padding:10px 16px;font-size:14px;transition:opacity .2s,transform .2s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px)}#toast.show{opacity:1;transform:translate(-50%)}#toast.error{background:var(--danger)}.auth-screen{place-items:center;height:100dvh;padding:16px;display:grid;overflow-y:auto}.auth-card{background:var(--panel);border-radius:16px;flex-direction:column;gap:14px;width:min(400px,100%);padding:28px;display:flex;box-shadow:0 10px 40px #00000014}.tagline{color:var(--muted);margin:-6px 0 4px}.auth-tabs{background:var(--bg);border-radius:10px;padding:3px;display:flex}.auth-tabs .tab{cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;padding:8px 6px;font-size:14px}.auth-tabs .tab.active{background:var(--panel);font-weight:600;box-shadow:0 1px 3px #0000001a}.auth-form{flex-direction:column;gap:10px;display:flex}.auth-extra{font-size:14px}.auth-msg{min-height:1em;margin:0;font-size:14px}.auth-msg.err{color:var(--danger)}.auth-msg.ok{color:var(--muted)}.guest-box{color:var(--muted);flex-direction:column;gap:10px;font-size:14px;display:flex}.guest-box p{color:var(--ink);background:var(--accent-soft);border-radius:10px;margin:0;padding:10px 12px}.guest-box .or{color:var(--muted);align-items:center;gap:10px;font-size:13px;display:flex}.guest-box .or:before,.guest-box .or:after{content:"";background:var(--line);flex:1;height:1px}.guest-box small{text-align:center}.signin-save{white-space:nowrap;flex:none;height:36px;padding:0 10px;font-size:14px}.signin-sidebar{width:100%}.migrate-card p{color:var(--muted);margin:0}.migrate-actions{flex-direction:column;gap:8px;display:flex}@media (width<=1400px){.toggle span{display:none}.toggle{padding:0 8px}}@media (width<=700px){.title-input{width:120px}.toggle span,.signin-toolbar span{display:none}}
