:root{--bg:#faf9f6;--paper:#fff;--ink:#282b28;--muted:#8b8e86;--line:#e7e7df;--accent:#e66f48;--soft:#f7ebe3;--green:#518769;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg);font-family:var(--sans);font-size:14px}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #e7a48c;outline-offset:4px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}[hidden]{display:none!important}.sidebar{width:244px;position:fixed;inset:0 auto 0 0;background:#f2f3ed;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:35px 20px 0}.brand{display:flex;align-items:center;gap:10px;padding:0 11px;font-size:22px;font-weight:720;letter-spacing:-.8px}.brand-dot{color:var(--accent)}.sidebar-label{font-size:10px;letter-spacing:1.6px;color:#93988a;margin:51px 13px 18px;display:flex;justify-content:space-between}.sidebar-label span{font:9px var(--mono);letter-spacing:0}nav{display:grid;gap:9px}nav a{display:flex;align-items:center;gap:13px;padding:15px 13px;border:1px solid transparent;border-radius:8px;font-size:13px;line-height:1.5;color:#62695d}nav a:hover{background:#e9ece3}nav a.active{background:#fff;border-color:#e4e5db;color:var(--ink);box-shadow:0 3px 7px #232d1c04}.nav-icon{font:18px var(--mono);width:26px;flex:none;white-space:nowrap;letter-spacing:-1px}nav a.active .nav-icon{color:var(--accent)}nav small{display:block;color:#95998f;font-size:10px;margin-top:3px}.nav-arrow{margin-left:auto;color:#9ba08f;font-size:16px}nav a.active .nav-arrow{color:var(--accent)}.sidebar-bottom{margin:auto 14px 35px;padding-top:70px}.little-spark{font-size:39px;color:#a4ad91;line-height:1;transform:rotate(12deg);width:40px}.sidebar-bottom p{font-size:17px;line-height:1.9;font-weight:500;letter-spacing:.5px;color:#757d6d}.sidebar-bottom>span{font:8px var(--mono);color:#a1a595;letter-spacing:1px}.sidebar-foot{border-top:1px solid #dee1d6;display:flex;align-items:center;gap:7px;font-size:9px;padding:20px 3px;color:#939989}.sidebar-foot>span:last-child{margin-left:auto;font:9px var(--mono)}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#7d9c72}.main-wrap{margin-left:244px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:80px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 44px;font-size:11px;color:#8a8d84}.breadcrumb-slash{margin:0 15px;color:#c3c5bb}#breadcrumb{color:#4f554b}.top-date{font:10px var(--mono);color:#93988b}main{padding:45px 44px 26px;max-width:1500px;width:100%;margin:0 auto;flex:1}.eyebrow{display:flex;align-items:center;gap:10px;font:10px var(--mono);letter-spacing:2px;color:#a08d7f}.eyebrow:before{content:"";width:18px;height:1px;background:var(--accent)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:13px 0 29px}.page-heading h1{margin:0;font-size:32px;font-weight:650;letter-spacing:-1px;line-height:1.5}.page-heading p{font-size:12px;color:#92968d;margin:10px 0 0;line-height:1.8}.badge{border:1px solid #dee5d7;color:#718267;border-radius:30px;background:#f0f4e9;padding:8px 12px;font-size:10px;white-space:nowrap;display:flex;gap:7px;align-items:center}.badge span{font-size:12px}.workspace{background:var(--paper);border:1px solid var(--line);border-radius:11px;box-shadow:0 4px 18px #20281a03;overflow:hidden}.toolbar{padding:15px 19px;display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:66px;border-bottom:1px solid var(--line)}.toolbar-group{display:flex;align-items:center;gap:9px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 13px;min-height:35px;border:1px solid #e5e7df;background:#fff;border-radius:6px;color:#61685c;font-size:11px;white-space:nowrap;transition:background .15s}.btn:hover{background:#f7f7f2}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#d6633e}.btn.quiet{background:transparent;border-color:transparent;color:#999d92}.btn.text{padding:5px;border-color:transparent;color:#858b7f}.btn .key{font-size:9px;color:#ffdbcf;margin-left:6px}.select-label{display:flex;align-items:center;gap:7px;color:#92978b;font-size:10px}.select-label select{padding:7px 21px 7px 8px;border:1px solid #e6e8df;border-radius:5px;font-size:11px;background:#fff;color:#61685c}.editor-grid{display:grid;grid-template-columns:1fr 1fr;min-height:460px}.editor-pane{min-width:0;display:flex;flex-direction:column}.editor-pane+.editor-pane{border-left:1px solid var(--line);background:#fdfdfa}.pane-heading{height:50px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#92988a}.pane-title{color:#686f61;display:flex;align-items:center;gap:8px}.pane-title b{font:10px var(--mono);font-weight:normal;color:#a3a99b}.editor-area{position:relative;flex:1;display:flex;min-height:380px;padding:0 20px 15px 0;overflow:hidden}.line-numbers{flex:0 0 44px;text-align:right;white-space:pre;font:12px/1.9 var(--mono);padding-right:13px;color:#c0c5b7;user-select:none;overflow:hidden;max-height:390px}.code-input,.code-output{font:12px/1.9 var(--mono);tab-size:2;letter-spacing:.1px;color:#68795b;white-space:pre;overflow:auto;margin:0;resize:none;border:0;background:transparent;width:100%;min-width:0;min-height:380px;max-height:390px;padding:0}.code-input{color:#555e4c}.code-input::placeholder{color:#b6bcae}.code-output:empty:after{content:"格式化后的 JSON 会显示在这里";color:#b6bcae}.token-key{color:#a46b50}.token-string{color:#6e8552}.token-number{color:#a5813a}.token-boolean{color:#8f7ca3}.token-null{color:#969c91}.workspace-status{min-height:37px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:8px 19px;font-size:9px;color:#9a9f92;gap:15px}.status-success{color:#719064;display:flex;align-items:center;gap:7px}.status-error{color:#c6543f}.hint-row{margin-top:22px;display:flex;justify-content:space-between;gap:15px;font-size:10px;line-height:1.9;color:#a0a597}.hint-row>span:first-child:before{content:"ⓘ";margin-right:6px;color:#a7ad9e}kbd{font:9px var(--mono);background:#f0f1eb;border:1px solid #e4e7db;border-radius:3px;padding:2px 4px;color:#8c9482}.mini-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:29px}.mini-card{padding:18px 19px;border:1px solid var(--line);border-radius:8px;display:flex;gap:12px;align-items:flex-start;background:#f9f9f4}.mini-card .mini-icon{font-size:18px;color:#9da68e}.mini-card strong{display:block;font-size:11px;font-weight:500;color:#777f6c}.mini-card p{font-size:10px;color:#a0a597;margin:7px 0 0;line-height:1.8}footer{max-width:1500px;width:100%;margin:15px auto 0;padding:22px 44px 25px;display:flex;justify-content:space-between;align-items:center;color:#aaaFA1;font-size:9px}footer>span:last-child{font:9px var(--mono);letter-spacing:.3px}.footer-spark{font-size:15px;margin-left:7px;color:#a6ae98}.toast{position:fixed;bottom:30px;left:calc(50% + 122px);transform:translateX(-50%);background:#333b2c;color:#fff;padding:12px 21px;border-radius:8px;font-size:12px;box-shadow:0 5px 20px #0002;z-index:10}.now-card{display:flex;align-items:center;justify-content:space-between;background:#f0f2e9;border:1px solid #e1e5d6;padding:22px 25px;border-radius:9px;margin-bottom:23px;gap:15px}.small-label{font-size:10px;color:#8d9582;display:block;margin-bottom:9px}.live-time{font:26px var(--mono);letter-spacing:1px}.live-dot{color:#789869;font-size:10px;margin-right:7px}.now-date{font:11px var(--mono);color:#89947b}.conversion-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.conversion-card{padding:25px}.card-title{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:550;margin:0 0 27px}.card-title>span{font:11px var(--mono);color:#a5ad99}.field{display:block;font-size:11px;color:#828b76;margin-bottom:17px}.field>span{display:block;margin-bottom:9px}.input,.field input,.field select{border:1px solid #e1e5d9;border-radius:6px;padding:12px;background:#fff;width:100%;font:12px var(--mono);color:#46503e;min-width:0;max-width:100%}.input-group{display:flex;gap:8px}.input-group select{width:85px;flex:none}.full{width:100%}.result-box{padding:18px;background:#f6f7f1;border:1px solid #e8ebdf;border-radius:6px;margin-top:22px}.result-line{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:12px}.result-line:first-child{margin-top:0}.result-line>span{font-size:10px;color:#929a88}.result-value{font:11px var(--mono);color:#59684c;overflow-wrap:anywhere;text-align:right}.inline-error{font-size:11px;color:#c6543f;line-height:1.8;min-height:18px;margin-top:10px}.notes-intro{max-width:640px;margin:35px auto 25px;text-align:center;padding:12px 20px 20px}.note-illustration{width:84px;height:84px;border-radius:23px;background:#f3e8db;color:#bb9365;display:grid;place-items:center;font-size:42px;margin:0 auto 23px;transform:rotate(-6deg)}.notes-intro h2{font-size:23px;font-weight:550;letter-spacing:.3px}.notes-intro p{color:#929a88;font-size:12px;line-height:2}.note-link-form{text-align:left;margin:30px 0 15px}.url-input{display:flex;align-items:center;background:#fff;border:1px solid #dce0d1;border-radius:7px;padding-left:15px;overflow:hidden}.url-prefix{font:11px var(--mono);color:#a2a896;white-space:nowrap}.url-input input{width:100%;border:0;min-width:0;padding:15px 5px;font:13px var(--mono);color:#525e45;background:transparent}.url-input:focus-within{border-color:var(--accent)}.notes-actions{display:flex;gap:9px;margin-top:12px}.notes-actions .primary{flex:1}.note-link-form .small-label{margin-top:10px;font-size:9px}.notice{font-size:11px;line-height:1.9;background:#f4f2e9;border:1px solid #e9e5d6;color:#9c906f;padding:14px 17px;border-radius:7px;margin-bottom:20px}.note-path{font:12px var(--mono);color:#7e886f}.note-path strong{color:#505f43;font-weight:550}.note-editor{display:block;border:0;resize:vertical;width:100%;min-height:420px;padding:25px 27px;font:14px/2 var(--sans);background:#fff;color:#46513c}.note-editor::placeholder{color:#b3baab}.note-editor:disabled{background:#fcfcf9}.save-state{font-size:10px;color:#859775;display:flex;gap:7px;align-items:center}.note-error{padding:13px 19px;background:#fff1e7;color:#b36a44;font-size:11px;line-height:1.8;border-bottom:1px solid #f1dccd;display:flex;align-items:center;justify-content:space-between;gap:10px}.note-countdown{font:10px var(--mono);color:#9b9f91}.note-footnote{margin:20px 0;font-size:10px;color:#a2a895;line-height:1.9}.note-top-label{display:flex;align-items:center;gap:12px}.read-only-code{font:11px var(--mono);color:#7c876c}.mobile-brand{display:none}
@media(min-width:1550px){main{padding-top:55px}.editor-grid{min-height:510px}.editor-area{min-height:430px}.code-input,.code-output,.line-numbers{max-height:440px;min-height:430px}}
@media(max-width:1150px){.sidebar{width:215px;padding-left:14px;padding-right:14px}.main-wrap{margin-left:215px}.topbar{padding:0 28px}main{padding:33px 28px 22px}footer{padding-left:28px;padding-right:28px}.brand{font-size:20px}.toolbar{flex-wrap:wrap}.toolbar-group{gap:6px}.toolbar .btn{padding:8px 10px}.btn .key{display:none}.mini-cards{gap:10px}.mini-card{padding:15px 12px;gap:8px}.toast{left:calc(50% + 107px)}.conversion-card{padding:21px}.live-time{font-size:23px}.result-line{align-items:flex-start}}
@media(max-width:800px){.sidebar{position:static;width:100%;padding:20px 20px 0;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:21px}.sidebar-label,.sidebar-bottom,.sidebar-foot,nav small,.nav-arrow{display:none}nav{display:flex;margin-top:20px;gap:8px}nav a{flex:1;justify-content:center;padding:12px 5px;border-radius:6px 6px 0 0;font-size:11px;gap:7px}nav a.active{border-bottom-color:#fff}.nav-icon{font-size:16px;width:auto}.main-wrap{margin:0}.topbar{height:53px;padding:0 22px;font-size:10px}.top-date{font-size:9px}main{padding:29px 22px 18px}.eyebrow{font-size:9px}.page-heading{margin-bottom:24px}.page-heading h1{font-size:27px}.page-heading p{font-size:11px}.badge{font-size:9px;padding:6px 9px}.editor-grid{grid-template-columns:1fr;min-height:auto}.editor-pane+.editor-pane{border-left:0;border-top:1px solid var(--line)}.editor-area{min-height:260px}.code-input,.code-output{min-height:260px;max-height:360px}.line-numbers{max-height:360px}.toolbar{padding:12px}.toolbar-group{gap:5px}.toolbar .btn{font-size:10px;padding:8px 9px}.select-label{font-size:9px}.select-label select{font-size:10px;padding:6px}.hint-row{flex-direction:column;gap:5px;margin-top:16px}.mini-cards{grid-template-columns:1fr;margin-top:22px;gap:9px}.mini-card{padding:14px 16px;align-items:center}.mini-card p{margin-top:4px}.mini-icon{width:23px}.conversion-grid{grid-template-columns:1fr}.now-card{padding:18px;align-items:flex-start}.now-date{font-size:9px;padding-top:3px}.live-time{font-size:21px}.conversion-card{padding:23px}.result-line>span,.result-value{font-size:11px}.notes-intro{margin-top:20px;padding:10px 0}.url-prefix{font-size:9px}.url-input{padding-left:10px}.note-illustration{width:70px;height:70px;font-size:35px}.notes-intro h2{font-size:21px}.note-path{font-size:10px}.note-top-label{gap:8px}.note-editor{padding:20px;min-height:400px;font-size:14px}.note-countdown{font-size:9px}.notice{font-size:10px}.note-error{flex-direction:column;align-items:flex-start}.workspace-status{padding:9px 13px;font-size:9px}footer{padding:18px 22px;gap:12px;align-items:flex-start;font-size:8px}footer>span:last-child{font-size:8px}.toast{left:50%;width:max-content;max-width:85%;font-size:11px}.badge.local-note{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Shared dropdowns and editable date/time picker. */
.control-label{display:block;margin-bottom:9px}
.field .field-hint{display:block;margin:8px 0 0;font-size:10px;line-height:1.6;color:#a0a795}
.custom-select{position:relative;width:100%;min-width:0}
.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:42px;padding:11px 13px;border:1px solid #e1e5d9;border-radius:7px;background:#fff;color:#56614b;text-align:left;font:12px var(--sans);transition:border-color .15s,box-shadow .15s,background .15s}
.select-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.select-trigger svg{width:15px;height:15px;flex:none;color:#929b86;transition:transform .15s}
.select-trigger:hover{border-color:#bdc7b0;background:#fdfefb}
.select-trigger[aria-expanded="true"]{border-color:var(--accent);box-shadow:0 0 0 3px #e66f4812}
.select-trigger[aria-expanded="true"] svg{transform:rotate(180deg);color:var(--accent)}
.select-trigger:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #e66f481c}
.compact-select{width:auto;min-width:87px}
.compact-select .select-trigger{min-height:35px;padding:8px 10px;font-size:11px;gap:10px}
.unit-select{width:100px;flex:none}
.input-group>input{flex:1;width:0}
.select-options,.datetime-panel{position:fixed;inset:auto;margin:0;padding:5px;border:1px solid #e4e7dd;border-radius:10px;background:#fffefb;color:var(--ink);box-shadow:0 12px 38px #323c2521,0 2px 6px #323c2508;max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}
.select-options::backdrop,.datetime-panel::backdrop{background:transparent}
.select-option{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;min-height:36px;padding:9px 10px;border:0;border-radius:6px;background:transparent;color:#66705a;text-align:left;font:12px var(--sans);white-space:nowrap}
.select-option:hover,.select-option:focus-visible{background:#f1f4eb;outline:none;color:#425339}
.select-option[aria-selected="true"]{background:#fbede5;color:#cf633e}
.option-check{visibility:hidden;font-size:12px}
.select-option[aria-selected="true"] .option-check{visibility:visible}
.datetime-control{position:relative;display:flex;align-items:center;border:1px solid #e1e5d9;border-radius:7px;background:#fff;transition:border-color .15s,box-shadow .15s}
.datetime-control:hover{border-color:#bdc7b0}
.datetime-control:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #e66f4812}
.field .datetime-control>input{width:100%;min-height:43px;padding:12px 43px 12px 12px;border:0;background:transparent;letter-spacing:.2px;font-size:12px}
.datetime-control>input[aria-invalid="true"]{color:#b46049}
.calendar-trigger{position:absolute;right:7px;top:6px;display:grid;place-items:center;width:31px;height:31px;padding:6px;border:0;border-radius:5px;background:transparent;color:#99a18e}
.calendar-trigger:hover,.calendar-trigger[aria-expanded="true"]{background:#f9ede5;color:var(--accent)}
.calendar-trigger svg{width:20px;height:20px}
.datetime-panel{width:320px;padding:17px 16px 12px;border-radius:12px}
.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:15px}
.calendar-nav{display:grid;place-items:center;flex:none;width:29px;height:29px;padding:0;border:1px solid #e8ebdf;border-radius:6px;background:#fffefb;color:#829073;font:22px var(--sans)}
.calendar-nav:hover{background:#f0f4e9;border-color:#cbd6c0}
.calendar-month-year{display:flex;align-items:center;justify-content:center;gap:5px;color:#8d977f;font-size:11px}
.field .calendar-month-year>input{width:53px;padding:6px 2px;border:1px solid transparent;border-radius:5px;background:transparent;text-align:center;font:13px var(--mono);color:#556249;appearance:textfield;-moz-appearance:textfield}
.calendar-month-year>input::-webkit-inner-spin-button,.calendar-month-year>input::-webkit-outer-spin-button,.time-segment>input::-webkit-inner-spin-button,.time-segment>input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.field .calendar-month-year>input:hover{border-color:#e2e7d8}
.field .calendar-month-year>input:focus{border-color:var(--accent);background:#fff}
.calendar-month-year .compact-select{min-width:73px;margin-left:6px}
.calendar-month-year .select-trigger{min-height:31px;padding:6px 8px;border-color:transparent;background:transparent;font-size:12px;gap:6px}
.calendar-month-year .select-trigger:hover{border-color:#e1e6d7;background:#f7f9f2}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.calendar-weekdays{margin-bottom:8px}
.calendar-weekdays span{text-align:center;font-size:10px;line-height:22px;color:#a2ab94}
.calendar-weekdays span:nth-last-child(-n+2){color:#bc9b85}
.calendar-day{position:relative;display:grid;place-items:center;height:33px;padding:0;border:1px solid transparent;border-radius:6px;background:transparent;color:#5d6b50;font:12px var(--mono)}
.calendar-day:hover,.calendar-day:focus-visible{background:#f0f4e9;border-color:#dce5d0;outline:none}
.calendar-day.outside-month{color:#c3c8ba}
.calendar-day[aria-current="date"]:after{position:absolute;bottom:4px;width:3px;height:3px;border-radius:50%;background:var(--accent);content:""}
.calendar-day[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 2px 4px #e66f4821}
.calendar-day[aria-pressed="true"]:after{background:#fff}
.calendar-time{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding:12px 0 11px;border-top:1px solid #e9ecdf}
.calendar-section-label{font-size:11px;color:#8f9982}
.time-fields{display:flex;align-items:center;gap:5px}
.time-segment{position:relative;display:flex;flex-direction:column;align-items:center;width:48px;border:1px solid #e4e9da;border-radius:6px;background:#f8faf4}
.field .time-segment>input{width:100%;min-height:25px;padding:2px 1px;border:0;border-radius:0;background:transparent;text-align:center;font:15px var(--mono);color:#516047;appearance:textfield;-moz-appearance:textfield}
.field .time-segment>input:focus{background:#fff0e7;color:#ce623c}
.field .time-segment>input[aria-invalid="true"]{background:#fff0e7;color:#b65743}
.time-step{display:grid;place-items:center;width:100%;height:16px;padding:0;border:0;background:transparent;color:#a4ae96;font-size:12px;line-height:1}
.time-step:hover{background:#eaf0e1;color:#60734d}
.time-segment>span{position:absolute;bottom:-14px;font-size:8px;color:#a1ac94}
.time-colon{margin-bottom:3px;font:14px var(--mono);color:#acb49f}
.calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:16px;padding-top:12px;border-top:1px solid #e9ecdf}
.calendar-now{padding:6px 0;border:0;background:transparent;color:var(--accent);font-size:11px}
.calendar-now:hover{text-decoration:underline}
.calendar-footer>span{font-size:9px;color:#a4ad98}
.calendar-done{min-height:30px;padding:6px 11px;font-size:10px}
@media(max-width:800px){.select-trigger{font-size:12px;min-height:43px}.compact-select .select-trigger{min-height:33px;font-size:10px}.unit-select{width:91px}.field .datetime-control>input{font-size:12px;letter-spacing:0}.datetime-panel{padding:14px 14px 12px}.calendar-day{height:31px}.calendar-footer>span{font-size:8px}.calendar-month-year .select-trigger{font-size:12px;min-height:30px}}
