:root{--brand:#2e7d32;--brand-dark:#1b5e20;--brand-tint:#e8f3ea;--ink:#1b2a22;--ink-soft:#5c6b63;--line:#e3e8e4;--bg:#eef1ee;--surface:#fff;--danger:#c62828;--danger-tint:#fdecec;--radius:10px;--radius-lg:14px;--radius-pill:999px;--shadow-sm:0 1px 3px #14281c1f;--shadow-md:0 4px 16px #14281c24;--shadow-lg:0 10px 34px #14281c2e;--font:system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--ui-scale:1;--chrome-scale:1}*,:before,:after{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.app{position:fixed;inset:0;overflow:hidden}.app__overlay{z-index:2000;pointer-events:none;transform:scale(var(--chrome-scale));transform-origin:0 0;flex-direction:column;align-items:flex-start;gap:10px;padding:16px;display:flex;position:fixed;top:0;left:0}.app__bar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);pointer-events:auto;background:#ffffffd9;align-items:center;gap:10px;padding:7px 14px 7px 8px;display:inline-flex}.app__title{letter-spacing:.2px;color:var(--ink);margin:0;font-size:19px;font-weight:700}.hamburger{pointer-events:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:38px;height:38px;color:var(--ink);cursor:pointer;justify-content:center;align-items:center;font-size:19px;line-height:1;transition:background .15s,border-color .15s;display:inline-flex}.hamburger:hover{background:var(--brand-tint);border-color:var(--brand)}.menu{pointer-events:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);flex-direction:column;gap:2px;padding:6px;animation:.14s ease-out menu-in;display:inline-flex}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px)}}.menu__item{color:var(--ink);white-space:nowrap;border-radius:7px;padding:9px 14px;font-size:14px;text-decoration:none}.menu__sep{border:none;border-top:1px solid var(--line);margin:4px 6px}.menu__item:hover{background:var(--brand-tint);color:var(--brand-dark)}.menu__langs{gap:4px;padding:0 6px 2px;display:flex}.menu__lang{border:1px solid var(--line);background:var(--surface);font:inherit;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:7px;flex:1;padding:8px 10px;font-size:14px;transition:background .15s,border-color .15s,color .15s}.menu__lang:hover{background:var(--brand-tint);border-color:var(--brand);color:var(--brand-dark)}.menu__lang.is-active{background:var(--brand);border-color:var(--brand);color:#fff;cursor:default}.app__hint{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius);width:fit-content;max-width:460px;box-shadow:var(--shadow-sm);color:var(--ink-soft);pointer-events:none;background:#ffffffd9;margin:0;padding:8px 13px;font-size:13px;line-height:1.45;display:block}.app__hint strong{color:var(--brand-dark);letter-spacing:1px}.app__task{z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-left:4px solid var(--brand);border-radius:var(--radius);width:fit-content;max-width:360px;box-shadow:var(--shadow-sm);pointer-events:none;background:#ffffffeb;flex-direction:column;align-items:flex-start;gap:9px;margin:0;padding:11px 15px;display:flex;position:relative}.app__task-text{color:var(--ink);margin:0;font-size:15px;font-weight:400;line-height:1.4}.app__task-text strong{font-weight:700}.help{pointer-events:auto;display:inline-flex}.help-btn{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink-soft);cursor:pointer;touch-action:manipulation;align-items:center;gap:6px;padding:4px 11px 4px 5px;font-family:inherit;font-size:13px;font-weight:500;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.help-btn__icon{border-radius:var(--radius-pill);background:var(--brand-tint);width:20px;height:20px;color:var(--brand-dark);justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.help-btn:hover,.help-btn.is-open{background:var(--brand-tint);border-color:var(--brand);color:var(--brand-dark)}.help-btn:hover .help-btn__icon,.help-btn.is-open .help-btn__icon{background:var(--brand);color:#fff}.help-popover{z-index:1;pointer-events:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:max-content;max-width:340px;box-shadow:var(--shadow-md);color:var(--ink-soft);padding:11px 14px;font-size:13px;line-height:1.45;animation:.14s ease-out menu-in;position:absolute;top:calc(100% + 8px);left:0}.help-popover p{margin:0}.help-popover p+p{margin-top:8px}.resume{z-index:3000;background:#00000073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.resume__box{background:var(--surface);border-radius:var(--radius-lg);width:min(460px,100%);box-shadow:var(--shadow-lg);color:var(--ink);padding:clamp(20px,2.4vw,32px)}.resume__title{margin:0 0 10px;font-size:clamp(18px,1.9vw,24px);font-weight:800}.resume__text{margin:0 0 20px;font-size:clamp(14px,1.3vw,17px);line-height:1.5}.resume__actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.resume__actions .btn-submit,.resume__actions .btn-handover{width:100%;padding:clamp(11px,1.1vw,16px) clamp(10px,1vw,16px);font-size:clamp(14px,1.2vw,18px);font-weight:700}@media (width<=420px){.resume__actions{grid-template-columns:1fr}}.app__actions{z-index:2000;transform:scale(var(--chrome-scale));transform-origin:100% 100%;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed;bottom:18px;right:18px}.submit-msg{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-md);padding:clamp(7px,.7vw,12px) clamp(12px,1vw,18px);font-size:clamp(13px,1.1vw,19px);font-weight:500;animation:.18s ease-out msg-in}@keyframes msg-in{0%{opacity:0;transform:translateY(6px)}}.submit-msg--error{color:var(--danger);background:var(--danger-tint);border:1px solid #ef9a9a}.submit-msg--success{color:var(--brand-dark);background:var(--brand-tint);border:1px solid #a5d6a7}.btn-submit{font:inherit;color:#fff;background:var(--brand);cursor:pointer;box-shadow:var(--shadow-md);border:none;border-radius:clamp(10px,.8vw,16px);padding:clamp(11px,1.1vw,20px) clamp(24px,2.4vw,48px);font-size:clamp(15px,1.6vw,28px);font-weight:700;transition:background .15s,transform 80ms,box-shadow .15s}.btn-submit:hover{background:var(--brand-dark);box-shadow:var(--shadow-lg)}.btn-submit:active{transform:translateY(1px)}.handover{grid-template-columns:1fr 1fr;gap:10px;width:min(520px,100vw - 36px);display:grid}.handover__ask{text-align:right;color:var(--ink);grid-column:1/-1;padding:0 4px;font-size:clamp(13px,1.1vw,19px);font-weight:600}.handover .btn-submit,.handover .btn-handover{border-radius:clamp(10px,.8vw,16px);width:100%;padding:clamp(11px,1.1vw,20px) clamp(10px,1vw,20px);font-size:clamp(14px,1.3vw,22px);font-weight:700}.btn-handover{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);cursor:pointer;box-shadow:var(--shadow-md);border-radius:clamp(10px,.8vw,16px);padding:clamp(11px,1.1vw,20px) clamp(16px,1.6vw,32px);font-size:clamp(13px,1.2vw,21px);font-weight:600;transition:background .15s,transform 80ms,box-shadow .15s}.btn-handover:hover{background:var(--bg);box-shadow:var(--shadow-lg)}.btn-handover:active{transform:translateY(1px)}.btn-handover--danger{color:#fff;background:var(--danger);border-color:var(--danger)}.btn-handover--danger:hover{background:var(--danger);filter:brightness(.94)}.canvas{touch-action:none;background-color:#e8ece9;position:fixed;inset:0;overflow:hidden}.canvas__world{transform-origin:0 0;touch-action:none;box-sizing:border-box;background-color:#fafbfa;background-image:radial-gradient(circle,#e1e7e2 1.2px,#0000 1.2px);background-size:26px 26px;border:1px solid #d4dbd5;border-radius:4px;position:absolute;top:0;left:0;box-shadow:0 8px 30px #14281c1f}.card{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:96px;height:96px;transition:width .3s cubic-bezier(.22,.61,.36,1);position:absolute}.card:active{cursor:grabbing}.card__body{box-sizing:border-box;background:var(--surface);width:100%;height:100%;box-shadow:var(--shadow-sm);border:3px solid #9e9e9e;border-radius:10px;align-items:center;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}.card:hover .card__body{box-shadow:var(--shadow-md)}.card__img{object-fit:cover;pointer-events:none;flex:0 0 90px;align-self:center;width:90px;height:90px;display:block}.card--open{cursor:grab}.card--open .card__body{box-shadow:var(--shadow-lg)}.card__text{flex:0 0 var(--card-text-w,254px);width:var(--card-text-w,254px);color:var(--ink);pointer-events:none;opacity:0;margin:0;padding:8px 14px;font-size:13px;line-height:1.38;transition:opacity .2s 50ms,transform .3s cubic-bezier(.22,.61,.36,1) 30ms;transform:translate(-16px)}.card--open .card__text{opacity:1;transform:none}.card__pin{border:1px solid var(--line);background:var(--surface);color:#9aa39c;cursor:pointer;width:24px;height:24px;box-shadow:var(--shadow-sm);pointer-events:auto;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:color .15s,border-color .15s,background .15s;display:flex;position:absolute;top:-10px;right:-10px}.card__pin:hover{color:var(--brand);border-color:var(--brand)}.card__pin.is-pinned{color:#fff;background:var(--brand);border-color:var(--brand)}.frame{z-index:0;border:2px solid var(--frame-color,#9e9e9e);box-sizing:border-box;background:color-mix(in srgb, var(--frame-color,#9e9e9e) 9%, transparent);cursor:move;border-radius:12px;transition:background .15s;position:absolute}.frame__header{z-index:4;background:var(--surface);border-radius:var(--radius-pill);max-width:calc(100% - 20px);box-shadow:var(--shadow-sm);align-items:center;gap:4px;padding:2px 6px 2px 10px;display:inline-flex;position:absolute;top:-16px;left:12px}.frame__header--invalid{box-shadow:var(--shadow-sm), 0 0 0 2px var(--danger)}.frame__name{font:700 16px var(--font);min-width:0;color:var(--frame-color,var(--ink));background:0 0;border:none;padding:0}.frame__name:focus{outline:none}.frame__name::placeholder{color:#9aa5a0;opacity:1;font-weight:500}.frame__name-sizer{visibility:hidden;white-space:pre;font:700 16px var(--font);position:absolute;top:0;left:-9999px}.frame__delete{border:1.5px solid var(--frame-color,#9e9e9e);background:var(--surface);width:22px;height:22px;color:var(--frame-color,#777);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;font-size:16px;font-weight:700;line-height:1;transition:background .15s,transform .12s,color .15s,border-color .15s;display:inline-flex}.frame__delete:hover{background:var(--danger-tint);border-color:var(--danger);color:var(--danger);transform:scale(1.1)}.frame__h{z-index:2;position:absolute}.frame__h--n{cursor:ns-resize;width:100%;height:12px;top:-6px;left:0}.frame__h--s{cursor:ns-resize;width:100%;height:12px;bottom:-6px;left:0}.frame__h--w{cursor:ew-resize;width:12px;height:100%;top:0;left:-6px}.frame__h--e{cursor:ew-resize;width:12px;height:100%;top:0;right:-6px}.frame__h--nw,.frame__h--ne,.frame__h--sw,.frame__h--se{z-index:3;width:16px;height:16px}.frame__h--nw{cursor:nwse-resize;top:-6px;left:-6px}.frame__h--ne{cursor:nesw-resize;top:-6px;right:-6px}.frame__h--sw{cursor:nesw-resize;bottom:-6px;left:-6px}.frame__h--se{cursor:nwse-resize;bottom:-6px;right:-6px}.frame-draft{z-index:1;box-sizing:border-box;pointer-events:none;background:#2850380d;border:2px dashed #9aa39c;border-radius:12px;position:absolute}.stack{z-index:900;pointer-events:none;width:96px;height:96px;transform:scale(var(--ui-scale));transform-origin:100% 0;position:absolute;top:18px;right:18px}.card--stacked{pointer-events:auto;top:0;right:0}.canvas-zoom{z-index:2000;transform:scale(var(--chrome-scale));transform-origin:0 100%;flex-direction:column;gap:6px;display:flex;position:fixed;bottom:18px;left:18px}.canvas-zoom button{width:40px;height:40px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);cursor:pointer;touch-action:manipulation;justify-content:center;align-items:center;font-size:21px;font-weight:600;line-height:1;transition:background .15s,border-color .15s;display:inline-flex}.canvas-zoom button:hover:not(:disabled){background:var(--brand-tint);border-color:var(--brand)}.canvas-zoom button:disabled{opacity:.45;cursor:default}.canvas-zoom__reset{font-variant-numeric:tabular-nums;font-size:12px!important}.page{background:var(--surface);border-radius:var(--radius-lg);max-width:680px;box-shadow:var(--shadow-md);color:var(--ink);margin:48px auto;padding:30px 34px 34px;line-height:1.55}.page--wide{max-width:1140px}.page h1{letter-spacing:.2px;margin:0 0 6px;font-size:25px;font-weight:800}.page h2{margin:30px 0 10px;font-size:16px;font-weight:700}.page .form{flex-direction:column;gap:14px;margin:16px 0;display:flex}.page .form--row{flex-direction:row;align-items:center}.page .form--row input{flex:1}.page .form label{color:var(--ink-soft);flex-direction:column;gap:5px;font-size:13px;font-weight:600;display:flex}.page input{font:inherit;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:10px 12px;font-size:15px;transition:border-color .15s,box-shadow .15s}.page input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint);outline:none}.page button,.page .btn{font:inherit;border-radius:var(--radius);border:1px solid var(--brand);background:var(--brand);color:#fff;cursor:pointer;align-items:center;gap:6px;padding:10px 18px;font-size:15px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s,transform 80ms,color .15s;display:inline-flex}.page button:hover,.page .btn:hover{background:var(--brand-dark);border-color:var(--brand-dark);box-shadow:var(--shadow-sm)}.page button:active,.page .btn:active{transform:translateY(1px)}.page button:disabled{opacity:.55;cursor:default;box-shadow:none;transform:none}.page button.ghost,.page .btn.ghost{color:var(--brand-dark);border-color:var(--line);background:#fff}.page button.ghost:hover{background:var(--brand-tint);border-color:var(--brand);color:var(--brand-dark)}.page button.danger{background:var(--danger);border-color:var(--danger)}.page button.danger:hover{background:#a31f1f;border-color:#a31f1f}.page .actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.page .links{margin:0 0 4px;font-size:14px}.page .links a,.page a{color:var(--brand-dark);font-weight:600;text-decoration:none}.page .links a:hover,.page a:hover{text-decoration:underline}.page .linkrow{align-items:center;gap:8px;margin:10px 0;display:flex}.page .linkrow__label{min-width:210px;color:var(--ink-soft);font-size:13px;font-weight:600}.page .linkrow input{background:var(--bg);flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.page .qr{flex-wrap:wrap;align-items:flex-start;gap:16px;margin:10px 0 16px;display:flex}.page .qr__canvas{border:1px solid var(--line);border-radius:var(--radius);image-rendering:auto;background:#fff}.page .qr__side{flex-direction:column;flex:1;align-items:flex-start;gap:8px;min-width:220px;display:flex}.page .qr__hint{color:var(--brand-dark);font-size:13px;font-weight:600}.page .qr__hint--failed{color:var(--danger);font-weight:500}.page .big-key{letter-spacing:4px;color:var(--brand-dark);background:var(--brand-tint);border-radius:var(--radius);padding:4px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:24px;font-weight:700;display:inline-block}.page .muted{color:var(--ink-soft);font-size:14px}.page .error{color:var(--danger);font-weight:500}.legal{font-size:15px}.legal p{margin:10px 0}.legal ul{margin:10px 0;padding-left:22px}.legal li{margin:6px 0}.legal address{color:var(--ink-soft);margin:8px 0;font-style:normal}.legal__next{border-top:1px solid var(--line);margin-top:44px;padding-top:26px;scroll-margin-top:24px}.page .filterbar{background:var(--bg);border-radius:var(--radius);flex-wrap:wrap;align-items:flex-end;gap:12px;margin:18px 0;padding:14px;display:flex}.page .filterbar label{color:var(--ink-soft);flex-direction:column;gap:5px;font-size:12px;font-weight:600;display:flex}.page .export{background:var(--brand-tint);border-radius:var(--radius);border:1px solid #cfe6d3;flex-wrap:wrap;align-items:center;gap:12px 20px;margin:8px 0 22px;padding:14px 16px;display:flex}.page .checkbox{color:var(--ink);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.page .checkbox input{width:auto}.page .table-wrap{border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto}.page .table{border-collapse:collapse;width:100%;font-size:13px}.page .table th,.page .table td{text-align:left;vertical-align:top;white-space:nowrap;border-bottom:1px solid var(--line);padding:9px 12px}.page .table th{background:var(--bg);color:var(--ink);font-weight:700}.page .table tbody tr:nth-child(2n){background:#fafcfa}.page .table tbody tr:hover{background:var(--brand-tint)}.page .table tr:last-child td{border-bottom:none}.page .table td:last-child{white-space:normal;max-width:240px;color:var(--ink-soft)}.page .table code{letter-spacing:1px;color:var(--brand-dark);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:700}.page .analysis{border-top:1px solid var(--line);margin-top:28px;padding-top:8px}.page .cardgraph{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);width:100%;height:auto;max-height:520px;margin-top:8px;display:block}.page .cardgraph text{-webkit-user-select:none;user-select:none;pointer-events:none}
