:root{--bg:#282828;--bg1:#3c3836;--bg2:#504945;--fg:#ebdbb2;--fg0:#fbf1c7;--gray:#928374;--red:#fb4934;--green:#b8bb26;--yellow:#fabd2f;--blue:#83a598;--purple:#d3869b;--aqua:#8ec07c;--orange:#fe8019;--mono:"JetBrains Mono", "Fira Code", "DejaVu Sans Mono", "Menlo", "Consolas", ui-monospace, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);font:14px/1.5 var(--mono);-webkit-tap-highlight-color:transparent;margin:0}#app{flex-direction:column;min-height:100dvh;display:flex}button,input,select{font:inherit;color:inherit}p{margin:.3rem 0}.label{color:var(--gray)}.value{color:var(--fg);font-weight:700}.accent{color:var(--aqua)}.warn{color:var(--yellow);font-weight:700}.dim{color:var(--bg2)}.highlight{color:var(--purple);font-weight:700}.online{color:var(--green);font-weight:700}.offline{color:var(--red);font-weight:700}.error{color:var(--red)}.small{font-size:.85em}.center{text-align:center;margin-top:3rem}.top{padding:calc(env(safe-area-inset-top) + .8rem) 1.2rem .5rem;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.logo{color:var(--orange);font:inherit;white-space:pre;margin:0;font-size:clamp(6px,1.2vw,14px);line-height:1.2;overflow:hidden}.status{flex-shrink:0;gap:.6rem;display:flex}.mini{border:1px solid var(--bg2);white-space:nowrap;padding:.15rem .8rem;line-height:1.5}.arrow{color:var(--bg2)}.arrow.tx{color:var(--orange);font-weight:700}.arrow.rx{color:var(--aqua);font-weight:700}.tabs{border-bottom:1px solid var(--bg2);gap:.2rem;padding:.4rem 1.2rem 0;display:flex}.tabs button{background:var(--bg1);color:var(--gray);cursor:pointer;border:0;padding:.2rem 1.2rem}.tabs button.active{background:var(--yellow);color:var(--bg);font-weight:700}main{flex:1;padding:.8rem 1.2rem}.help{color:var(--gray);padding:.4rem 1.2rem calc(env(safe-area-inset-bottom) + .6rem)}.box{border:1px solid var(--bg2);text-align:left;background:0 0;width:100%;margin:.9rem 0 1.1rem;padding:1rem 1rem .8rem;display:block;position:relative}.box-title{background:var(--bg);color:var(--yellow);white-space:pre;margin:0;padding:0 .4rem;font-size:1em;font-weight:700;line-height:1.5;position:absolute;top:-.78em;left:.6rem}.box.dim .box-title{color:var(--gray)}.box.focus{border-color:var(--aqua)}.sheet{grid-template-columns:repeat(auto-fit,minmax(24rem,1fr));gap:0 2rem;max-width:112rem;display:grid}.col{min-width:0}.section{color:var(--yellow);margin:.2rem 0 .8rem;font-size:1em}.row{align-items:baseline;gap:.8ch;padding:.1rem 0;display:flex}button.row{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:.15rem .2rem}button.row:hover,button.row.chosen{background:var(--bg1)}.mark{color:var(--orange);min-width:1ch;font-weight:700}.buttons,.keys{flex-wrap:wrap;gap:.4rem;margin-top:.7rem;display:flex}.box button:not(.row):not(.day):not(.nav):not(.x):not(.line):not(.opt):not(.bare),.cmd button,.inline button{background:var(--bg1);border:1px solid var(--bg2);cursor:pointer;min-height:2rem;padding:.15rem .8rem}button:disabled{opacity:.45;cursor:default}button.primary{color:var(--bg);font-weight:700;background:var(--yellow)!important;border-color:var(--yellow)!important}button.danger{color:var(--red);border-color:var(--red)!important;background:0 0!important}button.add{margin-top:.6rem}button.x{color:var(--red);cursor:pointer;background:0 0;border:0;padding:0 .4rem;font-weight:700}.keys button{color:var(--gray)}.form label{color:var(--fg);flex-direction:column;gap:.2rem;margin-bottom:.7rem;display:flex}input{background:var(--bg);border:1px solid var(--bg2);border-radius:0;width:100%;min-height:2.2rem;padding:.35rem .6rem}input:focus,button:focus-visible{outline:1px solid var(--yellow);outline-offset:0}input[type=range]{accent-color:var(--orange);border:0;padding:0}.pair{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.inline{gap:.4rem;margin:.3rem 0 .2rem;display:flex}.inline input{flex:1;min-width:0}.box button,.cmd button,.inline button{white-space:nowrap}.month-head{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.month-head .title{color:var(--yellow);font-weight:700}.nav{color:var(--gray);cursor:pointer;background:0 0;border:0;padding:0 .6rem;font-size:1.3em}.month{grid-template-columns:repeat(7,1fr);gap:.1rem;max-width:22rem;display:grid}.wd{text-align:center}.day{cursor:pointer;color:var(--fg);white-space:pre;background:0 0;border:0;padding:.2rem 0;font-weight:700}.day.ev{color:var(--purple)}.day.today{color:var(--aqua)}.day.sel{background:var(--yellow);color:var(--bg)}.dot.work{color:var(--blue)}.dot.personal{color:var(--green)}.dot.deadline{color:var(--red)}.dot.system{color:var(--purple)}.detail{margin:.2rem 0 .4rem 3ch}.days{text-align:right;min-width:5ch}.slot{border-top:1px solid var(--bg1);padding:.5rem 0}.slot:first-of-type{border-top:0}.slot .title,.slot .where{padding-left:2ch}.slot .title{font-weight:700}.slot.now .title{color:var(--orange)}.tag{color:var(--bg);background:var(--gray);margin-left:.5ch;padding:0 .5ch;font-weight:700}.tag-Lecture{background:#b8bb26}.tag-Seminar{background:#8ec07c}.tag-Lab,.tag-Practic{background:#d3869b}.tag-Math{background:#fb4934}.tag-DM{background:#fe8019}.tag-ATP{background:#fabd2f}.tag-FL{background:#83a598}.dev{padding:.25rem 0}.line{text-align:left;background:0 0;border:0;align-items:baseline;gap:1ch;width:100%;padding:.15rem .2rem;display:flex}button.line{cursor:pointer}button.line:hover:not(:disabled){background:var(--bg1)}button.line:disabled{opacity:1}.line .name{flex:1}.overlay{z-index:10;background:#0009;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.overlay .box{width:min(28rem,100%)}.whose{flex-wrap:wrap;gap:.3rem;margin:.4rem 0;display:flex}.whose button{padding:.1rem .8rem}.whose button.on{color:var(--bg);font-weight:700;background:var(--yellow)!important}.whose.days{gap:.25rem}.whose.days button{min-width:4.2ch;padding:.1rem .5rem}.menu{max-width:100%;display:inline-block;position:relative}.box .menu-button{text-align:left;align-items:center;gap:1ch;min-width:17rem;max-width:100%;display:flex}.box .menu-button:hover,.box .menu-button[aria-expanded=true]{border-color:var(--yellow)}.menu-mark{color:var(--yellow);text-align:center;min-width:1.5ch;font-weight:700}.menu-label{font-weight:700}.menu-hint{color:var(--gray);text-overflow:ellipsis;white-space:nowrap;font-size:.85em;overflow:hidden}.menu-caret{color:var(--yellow);margin-left:auto;padding-left:1ch}.menu-list{z-index:20;background:var(--bg);border:1px solid var(--yellow);scrollbar-width:thin;scrollbar-color:var(--bg2) transparent;width:max-content;min-width:100%;max-width:min(26rem,88vw);max-height:50vh;padding:.2rem 0;position:absolute;top:calc(100% + 3px);left:0;overflow-y:auto;box-shadow:0 8px 22px #0000008c}.menu-list .opt{text-align:left;cursor:pointer;background:0 0;border:0;border-left:2px solid #0000;align-items:center;gap:1.2ch;width:100%;padding:.35rem .8rem .35rem .7rem;display:flex}.menu-list .opt.at{background:var(--bg1);border-left-color:var(--yellow)}.menu-list .opt.on .menu-label{color:var(--yellow)}.menu-text{flex-direction:column;min-width:0;line-height:1.3;display:flex}.menu-tick{color:var(--yellow);margin-left:auto;padding-left:2ch}.printout textarea{background:var(--bg);width:100%;min-height:6rem;color:var(--fg);border:1px solid var(--bg2);font:inherit;resize:vertical;padding:.3rem .5rem}.printout .feed input{background:var(--bg);width:5rem;color:var(--fg);border:1px solid var(--bg2);margin-left:1ch;padding:.15rem .4rem}.printout .preview{background:var(--bg1);border-left:2px solid var(--yellow);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--fg0);margin:.4rem 0;padding:.5rem .7rem}.whose-menu{flex-wrap:wrap;align-items:center;gap:1ch;margin:.4rem 0 .6rem;display:flex}.form .field{flex-direction:column;gap:.25rem;display:flex}@media (max-width:760px){.menu,.box .menu-button{width:100%;min-width:0}.menu-list{width:100%;max-width:none}.menu-list .opt{min-height:2.8rem}}input[type=checkbox]{appearance:none;border:1px solid var(--gray);background:var(--bg) center / 85% no-repeat;cursor:pointer;vertical-align:middle;flex:none;width:1.15rem;height:1.15rem;min-height:0;margin:0;padding:0;transition:background-color .12s,border-color .12s}input[type=checkbox]:hover:not(:disabled){border-color:var(--yellow)}input[type=checkbox]:checked{border-color:var(--yellow);background-color:var(--yellow);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.4 6.3l2.5 2.4 4.7-5.3' fill='none' stroke='%23282828' stroke-width='1.9'/%3E%3C/svg%3E")}input[type=checkbox]:focus{outline:none}input[type=checkbox]:focus-visible{outline:1px solid var(--yellow);outline-offset:2px}input[type=checkbox]:disabled{opacity:.45;cursor:default}label.check,.form label.check{cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:row;align-items:center;gap:1ch;display:flex}.checks{flex-wrap:wrap;gap:.3rem 2.5ch;margin-bottom:.7rem;display:flex}.checks label.check{margin-bottom:0}.line .value{overflow-wrap:anywhere;min-width:0}.icon{min-width:1ch}.seg{flex-wrap:wrap;gap:.3rem;margin:.2rem 0;padding-left:3ch;display:flex}.seg button.on{color:var(--bg);font-weight:700;background:var(--yellow)!important}.bar{align-items:center;gap:1ch;padding-left:3ch;display:flex}.bar input{flex:1}.meter{letter-spacing:-.05em}.num{text-align:right;min-width:3ch}.sub{padding-left:3ch}input.sub{width:calc(100% - 3ch);margin:.2rem 0 .2rem 3ch}button.run{color:var(--aqua)}.seg-inline{align-items:center;gap:.4rem;display:inline-flex}input.count{text-align:right;width:5ch;min-width:5ch;min-height:0;padding:.15rem .3rem}.job{flex-wrap:wrap;align-items:baseline;gap:.2rem 1ch;padding:.15rem 0;display:flex}.kv{white-space:nowrap}.nodes{grid-template-columns:repeat(auto-fill,minmax(12.5rem,1fr));gap:0 1rem;display:grid}.box.node{cursor:pointer;flex-direction:column;gap:.1rem;margin:.8rem 0 .4rem;display:flex}.box.node:hover{border-color:var(--yellow)}.cmd{align-items:center;gap:.5ch;margin-bottom:.5rem;display:flex}.prompt{color:var(--yellow);font-weight:700}.logs{font-size:.9em}.log{white-space:nowrap;gap:1ch;display:flex;overflow:hidden}.log .tx{color:var(--orange)}.log .rx{color:var(--aqua)}.log .peer{color:var(--aqua);min-width:8ch}.log .msg{text-overflow:ellipsis;overflow:hidden}dl{grid-template-columns:auto 1fr;gap:.2rem 1.5ch;margin:0 0 .8rem;display:grid}dt{color:var(--gray)}dd{word-break:break-word;margin:0;font-weight:700}.person{min-width:10ch}.grants{flex-wrap:wrap;gap:.3rem;padding:0 0 .5rem 3ch;display:flex}.invitation{border-left:2px solid var(--yellow);margin:.6em 0;padding:.4em .8em}.invitation .code{letter-spacing:.12em;color:var(--yellow);-webkit-user-select:all;user-select:all;margin:.3em 0;font-size:1.5em}.row.key{grid-template-columns:1fr auto;column-gap:1ch;display:grid}.row.key .x{grid-area:1/2/span 2;align-self:center}.row.key .label{font-size:.85em}.people .keys{margin:.2em 0 .4em 1.6em}.chip{border:1px solid var(--bg2);color:var(--aqua);padding:0 0 0 .5ch}.grant{margin-bottom:.6rem;padding-left:3ch}.badge{background:var(--yellow);color:var(--bg);margin-left:auto;padding:0 .6ch;font-weight:700}.tabs .badge{margin-left:.8ch}.tabs button.active .badge{background:var(--bg);color:var(--yellow)}.synapse .when{margin-left:auto}.synapse .thread{scrollbar-width:thin;scrollbar-color:var(--bg2) transparent;flex-direction:column;gap:.6rem;max-height:60vh;padding-right:.4rem;display:flex;overflow-y:auto}.thread>*{flex-shrink:0}.msg .text{white-space:pre-wrap;overflow-wrap:anywhere;padding-left:2ch}.msg .who{align-items:baseline;gap:1ch;display:flex}.msg .acts{gap:1ch;margin-left:auto;display:flex}@media (hover:none){.msg .acts{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.msg{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.msg.held{background:var(--bg1)}}@media (hover:hover) and (pointer:fine){.msg .acts{opacity:0}.msg .acts button{pointer-events:none}.msg:hover .acts,.msg:focus-within .acts{opacity:1}.msg:hover .acts button,.msg:focus-within .acts button{pointer-events:auto}}button.act{color:var(--gray);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:.85em}button.act:hover,button.act:focus-visible{color:var(--yellow)}button.act.asking{color:var(--red);opacity:1;font-weight:700}.msg .quote,.writing{border:none;border-left:2px solid var(--bg2);width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;align-items:baseline;gap:1ch;margin:.2rem 0 .1rem 2ch;padding:0 0 0 1ch;display:flex;overflow:hidden}.msg .quote .small,.writing .small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.writing{cursor:default;margin:.9rem 0 -.4rem}.writing .act{opacity:1;margin-left:auto}.msg.gone .text{font-style:italic}.msg.mine .text{color:var(--fg0)}.synapse .earlier{align-self:flex-start}.msg-menu{z-index:8;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.msg-menu .behind{background:#00000080;border:0;padding:0;position:absolute;inset:0}.msg-menu .acts-box{background:var(--bg);border-top:1px solid var(--bg2);padding:.5rem .9rem calc(.4rem + env(safe-area-inset-bottom));position:relative}.msg-menu .quoted{white-space:nowrap;text-overflow:ellipsis;margin:.2rem 0 .4rem;overflow:hidden}.msg-menu .acts-box button{border:0;border-top:1px solid var(--bg1);width:100%;min-height:3rem;color:var(--fg0);font:inherit;text-align:left;background:0 0;padding:.6rem .2rem;display:block}.msg-menu .acts-box button:active{background:var(--bg1)}.msg-menu .acts-box button.take-back{color:var(--red)}.msg-menu .acts-box button.asking{font-weight:700}.msg-menu .acts-box button.soft{color:var(--gray)}.hold-hint{text-align:center;margin:.4rem 0 0;display:none}@media (hover:none){.hold-hint{display:block}}.thread-wrap{position:relative}.box button.latest{background:var(--yellow);border-color:var(--yellow);color:var(--bg);font-weight:700;position:absolute;bottom:.6rem;right:1rem;box-shadow:0 4px 14px #0000008c}.synapse .write{align-items:flex-end;margin-top:.9rem}.synapse .write textarea{background:var(--bg);min-width:0;min-height:2.2rem;max-height:9rem;color:var(--fg);border:1px solid var(--bg2);font:inherit;resize:none;border-radius:0;flex:1;padding:.35rem .6rem;line-height:1.4;overflow-y:auto}.synapse .write textarea:focus{outline:1px solid var(--yellow);outline-offset:0}.synapse .back{display:none}.signin{max-width:30rem;margin:8vh auto 0}@media (max-width:760px){body{font-size:13.5px}.top{flex-direction:column;align-items:stretch;gap:.5rem;padding-left:.8rem;padding-right:.8rem}.logo{font-size:min(2.35vw,11px)}.status{justify-content:space-between}.mini{flex:1}.tabs{z-index:5;padding:0 0 env(safe-area-inset-bottom);background:var(--bg);border-top:1px solid var(--bg2);border-bottom:0;gap:0;position:fixed;bottom:0;left:0;right:0}.tabs button{background:var(--bg);flex:1;padding:.8rem 0}.tabs .key,.help{display:none}main{padding:.4rem .8rem 5rem}.sheet{grid-template-columns:1fr}.month{max-width:none}.day{padding:.45rem 0}.box button:not(.row):not(.day):not(.nav):not(.x):not(.line):not(.pad):not(.bare){min-height:2.5rem}.log .peer{min-width:7ch}.synapse.open .list,.synapse:not(.open) .conv{display:none}.msg .who{flex-wrap:wrap;row-gap:0}.synapse .back{align-self:flex-start;margin:0 0 .6rem;display:inline-block}.synapse.open .conv{top:var(--screen-top,0px);z-index:6;height:var(--screen,100dvh);background:var(--bg);padding:max(.9rem, env(safe-area-inset-top)) .8rem env(safe-area-inset-bottom);display:flex;position:fixed;left:0;right:0}.synapse.open .conv .box{flex-direction:column;flex:1;min-height:0;margin:0;display:flex}.synapse.open .thread-wrap{flex:1;min-height:0;display:flex}.synapse.open .thread{overscroll-behavior:contain;flex:1;min-height:0;max-height:none}.tabs .badge{margin-left:.4ch}.overlay{place-items:start center;padding:.8rem .4rem 1.4rem;overflow:hidden auto}.signin{margin-top:3vh}}.pinpad{grid-template-columns:repeat(3,1fr);gap:.4rem;max-width:20rem;margin:-.3rem 0 .8rem;display:grid}.box .pinpad button,.pinpad button{min-height:3.2rem;color:var(--fg0);background:var(--bg1);border:1px solid var(--bg2);touch-action:manipulation;font-size:1.35rem;font-weight:700}.pinpad button:active:not(:disabled){background:var(--yellow);color:var(--bg)}.box .pinpad button.soft,.pinpad button.soft{color:var(--gray);font-size:1rem;font-weight:400}.form input[readonly]{caret-color:#0000;cursor:pointer}@media (max-width:760px){.pinpad{gap:.4rem;width:auto;max-width:none;margin:.5rem 0 .7rem;padding:0}.box .pinpad button,.pinpad button{min-height:clamp(4rem,12vh,6rem);font-size:2.2rem}.box .pinpad button.soft,.pinpad button.soft{font-size:1.25rem}}.task{align-items:flex-start;gap:1ch;padding:.2rem 0;display:flex}.task label.check{flex:1;align-items:flex-start;min-width:0}.task label.check input{margin-top:.15rem}.task .title{color:var(--fg);overflow-wrap:anywhere}.task.done .title{color:var(--gray);text-decoration:line-through}.task .due{white-space:nowrap}.due.late{color:var(--red);font-weight:700}.task-add{margin-bottom:.4rem}.task-more{flex-wrap:wrap;align-items:center;gap:.4rem 1.5ch;margin:-.1rem 0 .4rem;display:flex}.task-more label{color:var(--gray);align-items:center;gap:.6ch;display:flex}.task-more input{width:auto;min-height:2rem;padding:.15rem .4rem}
